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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.