source: sources/app/src/main/java/parkup/services/ParkingZoneService.java@ 3a58bd6

Last change on this file since 3a58bd6 was ce6ad22, checked in by DavidTrajkovski <davidtrajkovski11@…>, 3 years ago

v1 initial prototype

  • Property mode set to 100644
File size: 3.5 KB
Line 
1package parkup.services;
2
3import org.springframework.beans.factory.annotation.Autowired;
4import org.springframework.stereotype.Service;
5import parkup.entities.Administrator;
6import parkup.entities.ParkingZone;
7import parkup.repositories.ParkingZoneRepository;
8
9import javax.transaction.Transactional;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13
14@Service
15public class ParkingZoneService {
16 private final ParkingZoneRepository parkingZoneRepository;
17
18 @Autowired
19 public ParkingZoneService(ParkingZoneRepository parkingZoneRepository) {
20 this.parkingZoneRepository = parkingZoneRepository;
21 }
22
23 public List<ParkingZone> getAllParkingZones() {
24 return parkingZoneRepository.findAll();
25 }
26
27 public ParkingZone findById(int parkingZoneId) {
28 Optional<ParkingZone> parkingZone = Optional.ofNullable(this.parkingZoneRepository.findByPzId(parkingZoneId));
29 return parkingZone.orElse(null);
30 }
31
32 public void addParkingZone(ParkingZone parkingZone) { //zavisno vo koj grad ili opstina i napravi proverki pred dodavanje, implementiraj u naredna faza
33 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzName(parkingZone.getPzName()));
34 if (parkingZoneOpt.isPresent()) {
35 throw new IllegalStateException("Name already taken, try adding a ParkingZone with a different name");
36 } else {
37 System.out.println(parkingZone);
38 parkingZoneRepository.save(parkingZone);
39 }
40 }
41
42 @Transactional
43 public void updateParkingZone(int parkingZoneId, String pzName, int price, int capacity, String workHours, String location) {
44 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId));
45 if (parkingZoneOpt.isPresent()) {
46 ParkingZone parkingZoneNov = parkingZoneRepository.findByPzId(parkingZoneId);
47 if (pzName != null && pzName.length() > 1 && !Objects.equals(parkingZoneNov.getPzName(), pzName)) {
48 Optional<ParkingZone> parkingZoneOpt1 = Optional.ofNullable(parkingZoneRepository.findByPzName(pzName));
49 if (parkingZoneOpt1.isPresent()) {
50 throw new IllegalStateException("There is already a ParkingZone with the same name");
51 }
52
53 parkingZoneNov.setPzName(pzName);
54 }
55
56 if (price != 0 && !Objects.equals(parkingZoneNov.getPrice(), price)) {
57 parkingZoneNov.setPrice(price);
58 }
59
60 if (capacity != 0 && !Objects.equals(parkingZoneNov.getCapacity(), capacity)) {
61 parkingZoneNov.setCapacity(capacity);
62 }
63
64 if (workHours != null && workHours.length() > 0 && !Objects.equals(parkingZoneNov.getWorkHours(), workHours)) {
65 parkingZoneNov.setWorkHours(workHours);
66 }
67
68 if (location != null && location.length() > 0 && !Objects.equals(parkingZoneNov.getLocation(), location)) {
69 parkingZoneNov.setLocation(location);
70 }
71 }
72 }
73
74 public void deleteParkingZone(int parkingZoneId) {
75 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId));
76 if (parkingZoneOpt.isPresent()) {
77 parkingZoneRepository.deleteByPzId(parkingZoneId);
78 } else {
79 throw new IllegalStateException("ParkingZone doesn't exist, therefore can't be deleted");
80 }
81 }
82}
Note: See TracBrowser for help on using the repository browser.