Ignore:
Timestamp:
02/02/22 14:15:35 (2 years ago)
Author:
andrejTavchioski <andrej.tavchioski@…>
Branches:
master
Children:
df4089c
Parents:
9ff45d6
Message:

backend refactoring

Location:
sources/app/src/main/java/parkup/services
Files:
1 added
1 deleted
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • sources/app/src/main/java/parkup/services/AdministratorService.java

    r9ff45d6 r9dd526f  
    2121    private final AdministratorRepository administratorRepository;
    2222    private final BCryptPasswordEncoder bCryptPasswordEncoder;
    23     private final ConfirmationTokenService confirmationTokenService;
    24     private EmailValidator emailValidator;
     23
    2524
    2625    @Autowired
    27     public AdministratorService(AdministratorRepository administratorRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService) {
     26    public AdministratorService(AdministratorRepository administratorRepository, BCryptPasswordEncoder bCryptPasswordEncoder) {
    2827        this.administratorRepository = administratorRepository;
    2928        this.bCryptPasswordEncoder = bCryptPasswordEncoder;
    30         this.confirmationTokenService = confirmationTokenService;
    3129    }
    3230
     
    4644        } else {
    4745            if (administrator.getEmail() != null && administrator.getEmail().length() > 1 && administrator.getEmail().contains("@")) {
    48                 //System.out.println(regPark);
     46                administrator.setPassword(bCryptPasswordEncoder.encode(administrator.getPassword()));
    4947                this.administratorRepository.save(administrator);
    5048            }
     
    108106    }
    109107
    110    //public String register(RegistrationRequest request) {
    111    //    boolean isValidEmail = emailValidator.test(request.getEmail());
    112    //    if (!isValidEmail){
    113    //        throw new IllegalStateException("Email not valid");
    114    //    }
    115    //    return "it works";
    116    //}
    117 
    118     public String signUpAdministrator(Administrator administrator){
    119         boolean administratorExists = administratorRepository
    120                 .findAdministratorByEmail(administrator.getEmail())
    121                 .isPresent();
    122         if(administratorExists){
    123             // TODO check if attributes are the same and
    124             // TODO if email not confirmed send confirmation email
    125 
    126             throw new IllegalStateException("Email already taken");
    127         }
    128 
    129         String encodedPassword = bCryptPasswordEncoder
    130                 .encode(administrator.getPassword());
    131 
    132         administrator.setPassword(encodedPassword);
    133 
    134         administratorRepository.save(administrator);
    135 
    136         // TODO: Send confirmation token
    137 
    138         String token = UUID.randomUUID().toString();
    139 
    140 
    141         // TODO: SEND EMAIL
    142 
    143         return token;
    144     }
    145 
    146108    public int enableAdministrator(String email) {
    147109        return administratorRepository.enableAdministrator(email);
  • sources/app/src/main/java/parkup/services/ParkingSessionService.java

    r9ff45d6 r9dd526f  
    33import org.springframework.beans.factory.annotation.Autowired;
    44import org.springframework.stereotype.Service;
    5 import parkup.data.Tablicka;
     5import parkup.data.Plate;
    66import parkup.data.enumarations.SessionStatus;
    77import parkup.entities.ParkingSession;
     
    1111import parkup.repositories.ParkingSpaceRepository;
    1212import parkup.repositories.ParkingZoneRepository;
    13 import parkup.repositories.TablickaRepository;
     13import parkup.repositories.PlateRepository;
    1414
    1515import javax.transaction.Transactional;
     
    2525    private final ParkingZoneRepository parkingZoneRepository;
    2626    private final ParkingSpaceRepository parkingSpaceRepository;
    27     private final TablickaRepository tablickaRepository;
     27    private final PlateRepository plateRepository;
    2828
    2929    @Autowired
    30     public ParkingSessionService(ParkingSessionRepository parkingSessionRepository, ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, TablickaRepository tablickaRepository) {
     30    public ParkingSessionService(ParkingSessionRepository parkingSessionRepository, ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, PlateRepository plateRepository) {
    3131        this.parkingSessionRepository = parkingSessionRepository;
    3232        this.parkingZoneRepository = parkingZoneRepository;
    3333        this.parkingSpaceRepository = parkingSpaceRepository;
    34         this.tablickaRepository = tablickaRepository;
     34        this.plateRepository = plateRepository;
    3535    }
    3636
     
    8383    public Optional<ParkingSession> startParkingSession(String tablica, int parkingZoneId) {
    8484        ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId);
    85         Tablicka tablicka = tablickaRepository.findByTablica(tablica);
    86         if(tablicka==null) {
    87             tablickaRepository.save(new Tablicka(tablica));
     85        Plate plate = plateRepository.findByPlate(tablica);
     86        if(plate ==null) {
     87            plateRepository.save(new Plate(tablica));
    8888        }
    89         tablicka=tablickaRepository.findByTablica(tablica);
    90         ParkingSession sessionToAdd = new ParkingSession(tablicka);
     89        plate = plateRepository.findByPlate(tablica);
     90        ParkingSession sessionToAdd = new ParkingSession(plate);
    9191        sessionToAdd.setParkingZone(parkingZone);
    9292        parkingSessionRepository.save(sessionToAdd);
  • sources/app/src/main/java/parkup/services/ParkingSpaceService.java

    r9ff45d6 r9dd526f  
    44import org.springframework.stereotype.Service;
    55import parkup.entities.ParkingSpace;
     6import parkup.entities.ParkingZone;
    67import parkup.repositories.ParkingSpaceRepository;
    78import parkup.repositories.ParkingZoneRepository;
     
    4849        Optional<ParkingSpace> ParkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
    4950        if (ParkingSpaceOpt.isPresent()) {
    50             ParkingSpace ParkingSpaceNov = parkingSpaceRepository.findByPsId(parkingSpaceId);
    51             if (psName != null && psName.length() > 1 && !Objects.equals(ParkingSpaceNov.getPsName(), psName)) {
     51            ParkingSpace parkingSpaceNew = parkingSpaceRepository.findByPsId(parkingSpaceId);
     52            if (psName != null && psName.length() > 1 && !Objects.equals(parkingSpaceNew.getPsName(), psName)) {
    5253                Optional<ParkingSpace> parkingSpaceOpt1 = Optional.ofNullable(parkingSpaceRepository.findByPsName(psName));
    5354                if (parkingSpaceOpt1.isPresent()) {
     
    5556                }
    5657
    57                 ParkingSpaceNov.setPsName(psName);
     58                parkingSpaceNew.setPsName(psName);
    5859            }
    5960
    60             if (!Objects.equals(ParkingSpaceNov.isTaken(), taken)) {
    61                 ParkingSpaceNov.setTaken(taken);
     61            if (!Objects.equals(parkingSpaceNew.isTaken(), taken)) {
     62                parkingSpaceNew.setTaken(taken);
    6263            }
    6364
    6465
    65             if(lat!=0 && !Objects.equals(ParkingSpaceNov.getLat(), lat)){
    66                 ParkingSpaceNov.setLat(lat);
     66            if(lat!=0 && !Objects.equals(parkingSpaceNew.getLat(), lat)){
     67                parkingSpaceNew.setLat(lat);
    6768            }
    6869
    69             if(lng!=0 && !Objects.equals(ParkingSpaceNov.getLng(), lng)){
    70                 ParkingSpaceNov.setLng(lng);
     70            if(lng!=0 && !Objects.equals(parkingSpaceNew.getLng(), lng)){
     71                parkingSpaceNew.setLng(lng);
    7172            }
    72             return ParkingSpaceNov;
     73            return parkingSpaceNew;
    7374        }else{
    7475            throw new IllegalStateException("ParkingSpace does not exist");
     
    8081        Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
    8182        if (parkingSpaceOpt.isPresent()) {
     83            for(ParkingZone pz: parkingZoneRepository.findAll()){
     84                pz.getParkingSpaces().remove(parkingSpaceOpt.get());
     85                parkingZoneRepository.save(pz);
     86            }
    8287            parkingSpaceRepository.deleteByPsId(parkingSpaceId);
    8388        } else {
  • sources/app/src/main/java/parkup/services/ParkingZoneService.java

    r9ff45d6 r9dd526f  
    44import org.springframework.stereotype.Service;
    55import parkup.data.ParkingZoneLocation;
    6 import parkup.entities.ParkingSession;
    76import parkup.entities.ParkingSpace;
    87import parkup.entities.ParkingZone;
    9 import parkup.entities.Vraboten;
     8import parkup.entities.Worker;
    109import parkup.repositories.ParkingSessionRepository;
    1110import parkup.repositories.ParkingSpaceRepository;
    1211import parkup.repositories.ParkingZoneRepository;
    13 import parkup.repositories.VrabotenRepository;
     12import parkup.repositories.WorkerRepository;
    1413
    1514import javax.transaction.Transactional;
     
    2322    private final ParkingZoneRepository parkingZoneRepository;
    2423    private final ParkingSpaceRepository parkingSpaceRepository;
    25     private final VrabotenRepository vrabotenRepository;
     24    private final WorkerRepository workerRepository;
    2625    private final ParkingSessionRepository parkingSessionRepository;
    2726
    2827    @Autowired
    29     public ParkingZoneService(ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, VrabotenRepository vrabotenRepository, ParkingSessionRepository parkingSessionRepository) {
     28    public ParkingZoneService(ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, WorkerRepository workerRepository, ParkingSessionRepository parkingSessionRepository) {
    3029        this.parkingZoneRepository = parkingZoneRepository;
    3130        this.parkingSpaceRepository = parkingSpaceRepository;
    3231        this.parkingSessionRepository = parkingSessionRepository;
    33         this.vrabotenRepository = vrabotenRepository;
     32        this.workerRepository = workerRepository;
    3433    }
    3534
    3635    public List<ParkingZone> getAllParkingZones() {
    37         return parkingZoneRepository.findAll();
     36        List<ParkingZone> parkingZones= parkingZoneRepository.findAll();
     37        for(ParkingZone pz:parkingZones){
     38            setTransientVariables(pz.getId());
     39        }
     40        return parkingZones;
    3841    }
    3942
    4043    public ParkingZone findById(int parkingZoneId) {
    4144        Optional<ParkingZone> parkingZone = Optional.ofNullable(this.parkingZoneRepository.findByPzId(parkingZoneId));
    42         return parkingZone.orElse(null);
     45        if (!parkingZone.isPresent()) {
     46            throw new IllegalStateException("ParkingZone does not exist");
     47        }
     48        setTransientVariables(parkingZone.get().getId());
     49        return parkingZone.get();
    4350    }
    4451
     
    134141                    ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId);
    135142                    for (Integer vrabotenId : odgovorniLica) {
    136                         Vraboten vrabotenToAdd = vrabotenRepository.findByVrabotenId(vrabotenId);
    137                         if(vrabotenToAdd!=null)
    138                         vrabotenToAdd.getParkingZones().add(parkingZone);
     143                        Worker workerToAdd = workerRepository.findByWorkerId(vrabotenId);
     144                        if(workerToAdd !=null)
     145                        workerToAdd.getParkingZones().add(parkingZone);
    139146                    }
    140147                }
     
    158165            return parkingZoneOpt;
    159166        }
     167
     168        public int calculateTakenSpaces(int pzId){
     169            ParkingZone parkingZone=parkingZoneRepository.findByPzId(pzId);
     170            return (int)parkingZone.getParkingSpaces().stream().filter(ParkingSpace::isTaken).count();
     171        }
     172        public int calculateCapacity(int pzId){
     173            ParkingZone parkingZone=parkingZoneRepository.findByPzId(pzId);
     174            return parkingZone.getParkingSpaces().size();
     175        }
     176        public void setTransientVariables(int pzId){
     177            calculateCapacity(pzId);
     178            calculateTakenSpaces(pzId);
     179        }
    160180    }
    161181
  • sources/app/src/main/java/parkup/services/RegisteredUserService.java

    r9ff45d6 r9dd526f  
    1717import parkup.configs.token.ConfirmationTokenRP;
    1818import parkup.configs.token.ConfirmationTokenService;
    19 import parkup.data.Tablicka;
    20 import parkup.entities.RegistriranParkirac;
    21 import parkup.repositories.RegistriranParkiracRepository;
     19import parkup.data.Plate;
     20import parkup.entities.RegisteredUser;
     21import parkup.repositories.RegisteredUserRepository;
    2222
    2323@Service
    24 public class RegistriranParkiracService implements UserDetailsService {
    25     private final RegistriranParkiracRepository registriranParkiracRepository;
     24public class RegisteredUserService implements UserDetailsService {
     25    private final RegisteredUserRepository registeredUserRepository;
    2626    private final BCryptPasswordEncoder bCryptPasswordEncoder;
    2727    private final ConfirmationTokenService confirmationTokenService;
    28     private EmailValidator emailValidator;
    29 
     28    private final EmailValidator emailValidator;
    3029    @Autowired
    31     public RegistriranParkiracService(RegistriranParkiracRepository registriranParkiracRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService) {
    32         this.registriranParkiracRepository = registriranParkiracRepository;
     30    public RegisteredUserService(RegisteredUserRepository registeredUserRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService, EmailValidator emailValidator) {
     31        this.registeredUserRepository = registeredUserRepository;
    3332        this.bCryptPasswordEncoder = bCryptPasswordEncoder;
    3433        this.confirmationTokenService = confirmationTokenService;
     34        this.emailValidator = emailValidator;
    3535    }
    3636
    37     public List<RegistriranParkirac> getRegPark() {
    38         return this.registriranParkiracRepository.findAll();
     37    public List<RegisteredUser> getRegPark() {
     38        return this.registeredUserRepository.findAll();
    3939    }
    4040
    41     public Optional<RegistriranParkirac> addRegPark(RegistriranParkirac regPark) {
    42         Optional<RegistriranParkirac> regParkOpt = this.registriranParkiracRepository.findRegistriranParkiracByEmail(regPark.getEmail());
     41    public Optional<RegisteredUser> addRegPark(RegisteredUser regPark) {
     42        Optional<RegisteredUser> regParkOpt = this.registeredUserRepository.findRegisteredUserByEmail(regPark.getEmail());
    4343        if (regParkOpt.isPresent()) {
    4444            throw new IllegalStateException("Email already taken, try adding a registriranParkirac with a different valid email address");
    4545        } else {
    4646            if (regPark.getEmail() != null && regPark.getEmail().length() > 1 && regPark.getEmail().contains("@")) {
    47                 //System.out.println(regPark);
    48                 this.registriranParkiracRepository.save(regPark);
     47                this.registeredUserRepository.save(regPark);
    4948            }
    5049            else {
     
    5655
    5756    @Transactional
    58     public RegistriranParkirac updateRegPark(int regParkId, String name, String surname, String mobile, String email,List<Tablicka> regTablicki) {
    59         Optional<RegistriranParkirac> regParkOpt = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId));
     57    public RegisteredUser updateRegPark(int regParkId, String name, String surname, String mobile, String email, List<Plate> regTablicki) {
     58        Optional<RegisteredUser> regParkOpt = Optional.ofNullable(this.registeredUserRepository.findByRegParkId(regParkId));
    6059        if (regParkOpt.isPresent()) {
    61             RegistriranParkirac regParkNov = this.registriranParkiracRepository.findByRegParkId(regParkId);
     60            RegisteredUser regParkNov = this.registeredUserRepository.findByRegParkId(regParkId);
    6261            if (email != null && email.length() > 1 && email.contains("@") && !Objects.equals(regParkNov.getEmail(), email)) {
    63                 Optional<RegistriranParkirac> userOpt1 = this.registriranParkiracRepository.findRegistriranParkiracByEmail(email);
     62                Optional<RegisteredUser> userOpt1 = this.registeredUserRepository.findRegisteredUserByEmail(email);
    6463                if (userOpt1.isPresent()) {
    6564                    throw new IllegalStateException("email taken");
     
    8079                regParkNov.setMobile(mobile);
    8180            }
    82             regParkNov.setRegTablicki(regTablicki);
     81            regParkNov.setPlates(regTablicki);
    8382            return regParkNov;
    8483        }else{
     
    8988    @Transactional
    9089    @Modifying
    91     public Optional<RegistriranParkirac> deleteRegPark(int regParkId) {
    92         Optional<RegistriranParkirac> regPark = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId));
     90    public Optional<RegisteredUser> deleteRegPark(int regParkId) {
     91        Optional<RegisteredUser> regPark = Optional.ofNullable(this.registeredUserRepository.findByRegParkId(regParkId));
    9392        if (regPark.isPresent()) {
    9493            //TODO da povikamo metod od ConfirmationTokenService za brisenje na ConfirmationTokenRP *DONE
    9594            //TODO da se izbrisat tablicki i da ne se dupliraat istite tablicki pri update ili add na nov registriranParkirac
    96             this.confirmationTokenService.deleteByRegistriranParkirac_RegParkId(regParkId);
    97             this.registriranParkiracRepository.deleteByRegParkId(regParkId);
     95            this.confirmationTokenService.deleteByRegisteredUser_RegParkId(regParkId);
     96            this.registeredUserRepository.deleteByRegParkId(regParkId);
    9897        } else {
    9998            throw new IllegalStateException("RegistriranParkirac doesn't exist, therefore can't be deleted");
     
    102101    }
    103102
    104     public RegistriranParkirac findById(int regParkId) {
    105         Optional<RegistriranParkirac> regPark = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId));
     103    public RegisteredUser findById(int regParkId) {
     104        Optional<RegisteredUser> regPark = Optional.ofNullable(this.registeredUserRepository.findByRegParkId(regParkId));
    106105        return regPark.orElse(null);
    107106    }
     
    109108    @Override
    110109    public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
    111         return registriranParkiracRepository.findRegistriranParkiracByEmail(email)
     110        return registeredUserRepository.findRegisteredUserByEmail(email)
    112111                .orElseThrow(() ->
    113112                        new UsernameNotFoundException("Email not found"));
     
    115114    }
    116115
    117     public String signUpRegistriranParkirac(RegistriranParkirac registriranParkirac){
    118         boolean registriranParkiracExists = registriranParkiracRepository
    119                 .findRegistriranParkiracByEmail(registriranParkirac.getEmail())
     116    public String signUpRegistriranParkirac(RegisteredUser registeredUser){
     117        if (registeredUser.getEmail() == null || registeredUser.getEmail().isEmpty())
     118            throw new IllegalArgumentException("Empty email");
     119        if (!emailValidator.test(registeredUser.getEmail()))
     120            throw new IllegalArgumentException("Invalid email");
     121        boolean registriranParkiracExists = registeredUserRepository
     122                .findRegisteredUserByEmail(registeredUser.getEmail())
    120123                .isPresent();
    121124        if(registriranParkiracExists){
    122             // TODO check if attributes are the same and
    123             // TODO if email not confirmed send confirmation email
    124 
    125125            throw new IllegalStateException("Email already taken");
    126126        }
    127127
    128128        String encodedPassword = bCryptPasswordEncoder
    129                 .encode(registriranParkirac.getPassword());
     129                .encode(registeredUser.getPassword());
    130130
    131         registriranParkirac.setPassword(encodedPassword);
     131        registeredUser.setPassword(encodedPassword);
    132132
    133         registriranParkiracRepository.save(registriranParkirac);
    134 
    135         // TODO: Send confirmation token
     133        registeredUserRepository.save(registeredUser);
    136134
    137135        String token = UUID.randomUUID().toString();
     
    140138                LocalDateTime.now(),
    141139                LocalDateTime.now().plusMinutes(15),
    142                 registriranParkirac
     140                registeredUser
    143141        );
    144142
    145143        confirmationTokenService.saveConfirmationTokenRP(confirmationTokenRP);
    146 
    147         // TODO: SEND EMAIL
    148144
    149145        return token;
     
    151147
    152148    public int enableRegistriranParkirac(String email) {
    153         return registriranParkiracRepository.enableRegistriranParkirac(email);
     149        return registeredUserRepository.enableRegisteredUser(email);
    154150    }
    155151}
Note: See TracChangeset for help on using the changeset viewer.