Changeset 3f0bf09


Ignore:
Timestamp:
02/12/22 15:30:06 (2 years ago)
Author:
andrejTavchioski <andrej.tavchioski@…>
Branches:
master
Children:
b6e52e1
Parents:
8f153ca
Message:

change in parkingSessionService

Location:
sources/app/src/main/java/parkup
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sources/app/src/main/java/parkup/controllers/ParkingSessionController.java

    r8f153ca r3f0bf09  
    2323    }
    2424
    25 //    @GetMapping({"/parkingSession/{parkingSessionId}"})
    26 //    public ParkingSession getParkingSession(@PathVariable int parkingSessionId) {
    27 //        ParkingSession parkingSession = parkingSessionService.findById(parkingSessionId);
    28 //        if (parkingSession != null) {
    29 //            return parkingSession;
    30 //        } else {
    31 //            throw new RuntimeException("ParkingSession not found");
    32 //        }
    33 //    }
    34 
    35     @PostMapping({"/parkingSession/{parkingZoneId}"})
     25    @PostMapping({"/parkingSession/{parkingZoneName}"})
    3626    public Optional<ParkingSession> startParkingSession(@RequestParam String tablicka, @PathVariable String parkingZoneName) {
    3727        return this.parkingSessionService.startParkingSession(tablicka,parkingZoneName);
    3828    }
    39 // TODO: vidi kako kje funkcionira update na sesija i nejzino plakjanje so frontot
    4029
    41 //    @PutMapping({"/parkingSession/{parkingSessionId}"})
    42 //    public void updateParkingSession(@PathVariable int parkingSessionId, @RequestBody ParkingSession parkingSession) {
    43 //        parkingSessionService.updateParkingSession(parkingSessionId,
    44 //                parkingSession.getTimeStart(), parkingSession.getTimeEnd(), parkingSession.getTablica());
    45 //    }
    46 //    @PutMapping({"/parkingSession/pay/{parkingSessionId"})
    47 //    public void payParkingSession(@PathVariable int parkingSessionId){
    48 //        parkingSessionService.paySession
    49 //    }
    5030    @PutMapping("/parkingSession/end/{parkingSessionId}")
    5131    public ParkingSession endParkingSession(@PathVariable int parkingSessionId){
  • sources/app/src/main/java/parkup/entities/ParkingSession.java

    r8f153ca r3f0bf09  
    4747
    4848
    49 //    public ParkingSpace getParkingSpace() {
    50 //        return parkingSpace;
    51 //    }
    52 //
    53 //    public void setParkingSpace(ParkingSpace parkingSpace) {
    54 //        this.parkingSpace = parkingSpace;
    55 //    }
    5649
    5750    public ParkingSession() {
  • sources/app/src/main/java/parkup/services/ParkingSessionService.java

    r8f153ca r3f0bf09  
    22
    33import org.springframework.beans.factory.annotation.Autowired;
     4import org.springframework.security.core.Authentication;
    45import org.springframework.stereotype.Service;
     6import parkup.ParkUpApplication;
    57import parkup.data.Plate;
    68import parkup.data.enumarations.SessionStatus;
    7 import parkup.entities.ParkingSession;
    8 import parkup.entities.ParkingSpace;
    9 import parkup.entities.ParkingZone;
    10 import parkup.entities.RegisteredUser;
     9import parkup.entities.*;
    1110import parkup.repositories.*;
    1211
     
    2524    private final RegisteredUserRepository registeredUserRepository;
    2625    private final PlateRepository plateRepository;
     26    private final GuestRepository guestRepository;
    2727
    2828    @Autowired
    29     public ParkingSessionService(ParkingSessionRepository parkingSessionRepository, ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, RegisteredUserRepository registeredUserRepository, PlateRepository plateRepository) {
     29    public ParkingSessionService(ParkingSessionRepository parkingSessionRepository, ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, RegisteredUserRepository registeredUserRepository, PlateRepository plateRepository, GuestRepository guestRepository) {
    3030        this.parkingSessionRepository = parkingSessionRepository;
    3131        this.parkingZoneRepository = parkingZoneRepository;
     
    3333        this.registeredUserRepository = registeredUserRepository;
    3434        this.plateRepository = plateRepository;
     35        this.guestRepository = guestRepository;
    3536    }
    3637
     
    7475    public Optional<ParkingSession> startParkingSession(String tablica, String parkingZoneName) {
    7576        ParkingZone parkingZone = parkingZoneRepository.findByPzName(parkingZoneName);
     77        Authentication token = ParkUpApplication.getToken();
    7678        Plate plate = plateRepository.findByPlate(tablica);
    7779        if(plate ==null) {
     
    8284        sessionToAdd.setParkingZone(parkingZone);
    8385        parkingSessionRepository.save(sessionToAdd);
     86        String role =token.getAuthorities().stream().findFirst().get().getAuthority();
     87        String email =token.getName();
     88        if(role.equals("ROLE_REG_USER")){
     89            RegisteredUser user = registeredUserRepository.findRegisteredUserByEmail(email).get();
     90            user.setSession(sessionToAdd);
     91        }
     92        else{
     93            Guest user = guestRepository.findGuestByEmail(email).get();
     94            user.setSession(sessionToAdd);
     95        }
    8496        return Optional.of(sessionToAdd);
    8597
     
    132144    }
    133145    @Transactional
    134     public ParkingSession endParkingSession(int id){
    135         ParkingSession parkingSession = parkingSessionRepository.findByPssId(id);
    136         if(parkingSession==null){
    137             throw new IllegalStateException("No such session exists");
    138         }
    139         else if(parkingSession.getStatus()==SessionStatus.ENDED_UNPAID){
     146    public ParkingSession endParkingSession(){
     147        Authentication token = ParkUpApplication.getToken();
     148        String role =token.getAuthorities().stream().findFirst().get().getAuthority();
     149        String email =token.getName();
     150        ParkingSession session;
     151        if(role.equals("ROLE_REG_USER")){
     152            RegisteredUser user = registeredUserRepository.findRegisteredUserByEmail(email).get();
     153            session=user.getSession();
     154        }
     155        else{
     156            Guest user = guestRepository.findGuestByEmail(email).get();
     157            session=user.getSession();
     158        }
     159        if(session==null){
     160            throw new IllegalStateException("No such session exists");
     161        }
     162        else if(session.getStatus()==SessionStatus.ENDED_UNPAID){
    140163            throw new IllegalStateException("The session you are trying to end has already been ended");
    141164        }
    142         parkingSession.setStatus(SessionStatus.ENDED_UNPAID);
    143         parkingSession.setTimeEnd(LocalDateTime.now());
    144         return parkingSession;
     165        session.setStatus(SessionStatus.ENDED_UNPAID);
     166        session.setTimeEnd(LocalDateTime.now());
     167        return session;
     168//        ParkingSession parkingSession = parkingSessionRepository.findByPssId(id);
     169//        if(parkingSession==null){
     170//            throw new IllegalStateException("No such session exists");
     171//        }
     172//        else if(parkingSession.getStatus()==SessionStatus.ENDED_UNPAID){
     173//            throw new IllegalStateException("The session you are trying to end has already been ended");
     174//        }
     175//        parkingSession.setStatus(SessionStatus.ENDED_UNPAID);
     176//        parkingSession.setTimeEnd(LocalDateTime.now());
     177//        return parkingSession;
    145178    }
    146179    @Transactional
    147180    public boolean payParkingSession(int id,String date){
    148         ParkingSession parkingSession = parkingSessionRepository.findByPssId(id);
    149181        String expMonthString=date.split("/")[0];
    150182        String expYearString=date.split("/")[1];
     
    164196                throw new IllegalStateException("Your card has expired or the date that you have entered is incorrect");
    165197        }
     198        Authentication token = ParkUpApplication.getToken();
     199        String role =token.getAuthorities().stream().findFirst().get().getAuthority();
     200        String email =token.getName();
     201        ParkingSession parkingSession;
     202        if(role.equals("ROLE_REG_USER")){
     203            RegisteredUser user = registeredUserRepository.findRegisteredUserByEmail(email).get();
     204            parkingSession=user.getSession();
     205        }
     206        else{
     207            Guest user = guestRepository.findGuestByEmail(email).get();
     208            parkingSession=user.getSession();
     209        }
    166210        if(parkingSession==null){
    167211            throw new IllegalStateException("No such session exists");
Note: See TracChangeset for help on using the changeset viewer.