source: sources/app/src/main/java/parkup/services/ParkingSpaceService.java@ 2ace8f0

Last change on this file since 2ace8f0 was 97fbc67, checked in by andrejTavchioski <andrej.tavchioski@…>, 3 years ago

fixed deleteVraboten and deleteRegistriranParkirac

  • 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.ParkingSpace;
6import parkup.repositories.ParkingSpaceRepository;
7
8import javax.transaction.Transactional;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12
13@Service
14public class ParkingSpaceService {
15 private final ParkingSpaceRepository parkingSpaceRepository;
16
17 @Autowired
18 public ParkingSpaceService(ParkingSpaceRepository parkingSpaceRepository) {
19 this.parkingSpaceRepository = parkingSpaceRepository;
20 }
21
22 public List<ParkingSpace> getAllParkingSpaces() {
23 return parkingSpaceRepository.findAll();
24 }
25
26 public ParkingSpace findById(int parkingSpaceId) {
27 Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
28 return parkingSpaceOpt.orElse(null);
29 }
30
31 public Optional<ParkingSpace> addParkingSpace(ParkingSpace parkingSpace) {
32 Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsName(parkingSpace.getPsName()));
33 if (parkingSpaceOpt.isPresent()) {
34 throw new IllegalStateException("Name already taken, try adding a ParkingZone with a different name");
35 } else {
36 System.out.println(parkingSpace);
37 parkingSpaceRepository.save(parkingSpace);
38 }
39 return parkingSpaceOpt;
40 }
41
42 @Transactional
43 public ParkingSpace updateParkingSpace(int parkingSpaceId, String psName, boolean taken, boolean handicaped, float lat, float lng) {
44 Optional<ParkingSpace> ParkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
45 if (ParkingSpaceOpt.isPresent()) {
46 ParkingSpace ParkingSpaceNov = parkingSpaceRepository.findByPsId(parkingSpaceId);
47 if (psName != null && psName.length() > 1 && !Objects.equals(ParkingSpaceNov.getPsName(), psName)) {
48 Optional<ParkingSpace> parkingSpaceOpt1 = Optional.ofNullable(parkingSpaceRepository.findByPsName(psName));
49 if (parkingSpaceOpt1.isPresent()) {
50 throw new IllegalStateException("There is already a ParkingSpace with the same name");
51 }
52
53 ParkingSpaceNov.setPsName(psName);
54 }
55
56 if (!Objects.equals(ParkingSpaceNov.isTaken(), taken)) {
57 ParkingSpaceNov.setTaken(taken);
58 }
59
60 if (!Objects.equals(ParkingSpaceNov.isHandicaped(), handicaped)) {
61 ParkingSpaceNov.setHandicaped(handicaped);
62 }
63
64 if(lat!=0 && !Objects.equals(ParkingSpaceNov.getLat(), lat)){
65 ParkingSpaceNov.setLat(lat);
66 }
67
68 if(lng!=0 && !Objects.equals(ParkingSpaceNov.getLng(), lng)){
69 ParkingSpaceNov.setLng(lng);
70 }
71 return ParkingSpaceNov;
72 }else{
73 throw new IllegalStateException("ParkingSpace does not exist");
74 }
75 }
76
77 @Transactional
78 public Optional<ParkingSpace> deleteParkingSpace(int parkingSpaceId) {
79 Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
80 if (parkingSpaceOpt.isPresent()) {
81 parkingSpaceRepository.deleteByPsId(parkingSpaceId);
82 } else {
83 throw new IllegalStateException("ParkingSpace doesn't exist, therefore can't be deleted");
84 }
85 return parkingSpaceOpt;
86 }
87}
Note: See TracBrowser for help on using the repository browser.