source: sources/app/src/main/java/parkup/services/ParkingSpaceService.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: 2.9 KB
Line 
1package parkup.services;
2
3import org.springframework.beans.factory.annotation.Autowired;
4import org.springframework.stereotype.Service;
5import parkup.entities.ParkingSpace;
6import parkup.repositories.ParkingSpaceRepository;
7
8import java.util.List;
9import java.util.Objects;
10import java.util.Optional;
11
12@Service
13public class ParkingSpaceService {
14 private final ParkingSpaceRepository parkingSpaceRepository;
15
16 @Autowired
17 public ParkingSpaceService(ParkingSpaceRepository parkingSpaceRepository) {
18 this.parkingSpaceRepository = parkingSpaceRepository;
19 }
20
21 public List<ParkingSpace> getAllParkingSpaces() {
22 return parkingSpaceRepository.findAll();
23 }
24
25 public ParkingSpace findById(int parkingSpaceId) {
26 Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
27 return parkingSpaceOpt.orElse(null);
28 }
29
30 public void addParkingSpace(ParkingSpace parkingSpace) {
31 Optional <ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsName(parkingSpace.getPsName()));
32 if (parkingSpaceOpt.isPresent()) {
33 throw new IllegalStateException("Name already taken, try adding a ParkingZone with a different name");
34 } else {
35 System.out.println(parkingSpace);
36 parkingSpaceRepository.save(parkingSpace);
37 }
38 }
39
40 public void updateParkingSpace(int parkingSpaceId, String psName, boolean taken, boolean handicaped) {
41 Optional<ParkingSpace> ParkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
42 if (ParkingSpaceOpt.isPresent()) {
43 ParkingSpace ParkingSpaceNov = parkingSpaceRepository.findByPsId(parkingSpaceId);
44 if (psName != null && psName.length() > 1 && !Objects.equals(ParkingSpaceNov.getPsName(), psName)) {
45 Optional<ParkingSpace> parkingSpaceOpt1 = Optional.ofNullable(parkingSpaceRepository.findByPsName(psName));
46 if (parkingSpaceOpt1.isPresent()) {
47 throw new IllegalStateException("There is already a ParkingSpace with the same name");
48 }
49
50 ParkingSpaceNov.setPsName(psName);
51 }
52
53 if (!Objects.equals(ParkingSpaceNov.isTaken(), taken)) {
54 ParkingSpaceNov.setTaken(taken);
55 }
56
57 if (!Objects.equals(ParkingSpaceNov.isHandicaped(), handicaped)) {
58 ParkingSpaceNov.setHandicaped(handicaped);
59 }
60 }
61 }
62
63 public void deleteParkingSpace(int parkingSpaceId) {
64 Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
65 if (parkingSpaceOpt.isPresent()) {
66 parkingSpaceRepository.deleteByPsId(parkingSpaceId);
67 } else {
68 throw new IllegalStateException("ParkingSpace doesn't exist, therefore can't be deleted");
69 }
70 }
71}
Note: See TracBrowser for help on using the repository browser.