Changeset 9ff45d6 for sources/app/src
- Timestamp:
- 12/24/21 23:31:23 (3 years ago)
- Branches:
- master
- Children:
- 9dd526f
- Parents:
- 8588fcb
- Location:
- sources/app/src/main
- Files:
-
- 9 added
- 23 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
sources/app/src/main/java/parkup/configs/RegistrationServiceW.java
r8588fcb r9ff45d6 1 package parkup.configs;2 3 import org.springframework.beans.factory.annotation.Autowired;4 import org.springframework.stereotype.Service;5 import parkup.configs.email.EmailSender;6 import parkup.configs.email.EmailValidator;7 import parkup.configs.token.ConfirmationTokenW;8 import parkup.configs.token.ConfirmationTokenService;9 import parkup.entities.Vraboten;10 import parkup.services.VrabotenService;11 12 import javax.transaction.Transactional;13 import java.time.LocalDateTime;14 15 @Service16 public class RegistrationServiceW {17 private final VrabotenService vrabotenService;18 private final EmailValidator emailValidator;19 private final ConfirmationTokenService confirmationTokenService;20 private final EmailSender emailSender;21 22 @Autowired23 public RegistrationServiceW(VrabotenService vrabotenService, EmailValidator emailValidator,24 ConfirmationTokenService confirmationTokenService, EmailSender emailSender) {25 this.vrabotenService = vrabotenService;26 this.emailValidator = emailValidator;27 this.confirmationTokenService = confirmationTokenService;28 this.emailSender = emailSender;29 }30 31 public String register(RegistrationRequest request) {32 boolean isValidEmail = emailValidator.33 test(request.getEmail());34 35 if (!isValidEmail) {36 throw new IllegalStateException("email not valid");37 }38 39 String token = vrabotenService.signUpVraboten(40 new Vraboten(41 request.getFirstName(),42 request.getLastName(),43 request.getEmail(),44 request.getPassword(),45 request.getMobile()46 )47 );48 49 String link = "http://localhost:8080/vraboten/registration/confirm?token=" + token;50 emailSender.send(51 request.getEmail(),52 buildEmail(request.getFirstName(), link));53 54 return token;55 }56 57 @Transactional58 public String confirmToken(String token) {59 ConfirmationTokenW confirmationTokenW = confirmationTokenService60 .getTokenW(token)61 .orElseThrow(() ->62 new IllegalStateException("token not found"));63 64 if (confirmationTokenW.getConfirmedAt() != null) {65 throw new IllegalStateException("email already confirmed");66 }67 68 LocalDateTime expiredAt = confirmationTokenW.getExpiresAt();69 70 if (expiredAt.isBefore(LocalDateTime.now())) {71 throw new IllegalStateException("token expired");72 }73 74 confirmationTokenService.setConfirmedAtW(token);75 76 vrabotenService.enableVraboten(confirmationTokenW.getRegistriranParkirac().getEmail());77 return "confirmed";78 }79 80 private String buildEmail(String name, String link) {81 return "<div style=\"font-family:Helvetica,Arial,sans-serif;font-size:16px;margin:0;color:#0b0c0c\">\n" +82 "\n" +83 "<span style=\"display:none;font-size:1px;color:#fff;max-height:0\"></span>\n" +84 "\n" +85 " <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;min-width:100%;width:100%!important\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n" +86 " <tbody><tr>\n" +87 " <td width=\"100%\" height=\"53\" bgcolor=\"#0b0c0c\">\n" +88 " \n" +89 " <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;max-width:580px\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\">\n" +90 " <tbody><tr>\n" +91 " <td width=\"70\" bgcolor=\"#0b0c0c\" valign=\"middle\">\n" +92 " <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" +93 " <tbody><tr>\n" +94 " <td style=\"padding-left:10px\">\n" +95 " \n" +96 " </td>\n" +97 " <td style=\"font-size:28px;line-height:1.315789474;Margin-top:4px;padding-left:10px\">\n" +98 " <span style=\"font-family:Helvetica,Arial,sans-serif;font-weight:700;color:#ffffff;text-decoration:none;vertical-align:top;display:inline-block\">Confirm your email</span>\n" +99 " </td>\n" +100 " </tr>\n" +101 " </tbody></table>\n" +102 " </a>\n" +103 " </td>\n" +104 " </tr>\n" +105 " </tbody></table>\n" +106 " \n" +107 " </td>\n" +108 " </tr>\n" +109 " </tbody></table>\n" +110 " <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" +111 " <tbody><tr>\n" +112 " <td width=\"10\" height=\"10\" valign=\"middle\"></td>\n" +113 " <td>\n" +114 " \n" +115 " <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" +116 " <tbody><tr>\n" +117 " <td bgcolor=\"#1D70B8\" width=\"100%\" height=\"10\"></td>\n" +118 " </tr>\n" +119 " </tbody></table>\n" +120 " \n" +121 " </td>\n" +122 " <td width=\"10\" valign=\"middle\" height=\"10\"></td>\n" +123 " </tr>\n" +124 " </tbody></table>\n" +125 "\n" +126 "\n" +127 "\n" +128 " <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" +129 " <tbody><tr>\n" +130 " <td height=\"30\"><br></td>\n" +131 " </tr>\n" +132 " <tr>\n" +133 " <td width=\"10\" valign=\"middle\"><br></td>\n" +134 " <td style=\"font-family:Helvetica,Arial,sans-serif;font-size:19px;line-height:1.315789474;max-width:560px\">\n" +135 " \n" +136 " <p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\">Hi " + name + ",</p><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> Thank you for registering. Please click on the below link to activate your account: </p><blockquote style=\"Margin:0 0 20px 0;border-left:10px solid #b1b4b6;padding:15px 0 0.1px 15px;font-size:19px;line-height:25px\"><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> <a href=\"" + link + "\">Activate Now</a> </p></blockquote>\n Link will expire in 15 minutes. <p>See you soon</p>" +137 " \n" +138 " </td>\n" +139 " <td width=\"10\" valign=\"middle\"><br></td>\n" +140 " </tr>\n" +141 " <tr>\n" +142 " <td height=\"30\"><br></td>\n" +143 " </tr>\n" +144 " </tbody></table><div class=\"yj6qo\"></div><div class=\"adL\">\n" +145 "\n" +146 "</div></div>";147 }148 }1 //package parkup.configs; 2 // 3 //import org.springframework.beans.factory.annotation.Autowired; 4 //import org.springframework.stereotype.Service; 5 //import parkup.configs.email.EmailSender; 6 //import parkup.configs.email.EmailValidator; 7 //import parkup.configs.token.ConfirmationTokenW; 8 //import parkup.configs.token.ConfirmationTokenService; 9 //import parkup.entities.Vraboten; 10 //import parkup.services.VrabotenService; 11 // 12 //import javax.transaction.Transactional; 13 //import java.time.LocalDateTime; 14 // 15 //@Service 16 //public class RegistrationServiceW { 17 // private final VrabotenService vrabotenService; 18 // private final EmailValidator emailValidator; 19 // private final ConfirmationTokenService confirmationTokenService; 20 // private final EmailSender emailSender; 21 // 22 // @Autowired 23 // public RegistrationServiceW(VrabotenService vrabotenService, EmailValidator emailValidator, 24 // ConfirmationTokenService confirmationTokenService, EmailSender emailSender) { 25 // this.vrabotenService = vrabotenService; 26 // this.emailValidator = emailValidator; 27 // this.confirmationTokenService = confirmationTokenService; 28 // this.emailSender = emailSender; 29 // } 30 // 31 // public String register(RegistrationRequest request) { 32 // boolean isValidEmail = emailValidator. 33 // test(request.getEmail()); 34 // 35 // if (!isValidEmail) { 36 // throw new IllegalStateException("email not valid"); 37 // } 38 // 39 // String token = vrabotenService.signUpVraboten( 40 // new Vraboten( 41 // request.getFirstName(), 42 // request.getLastName(), 43 // request.getEmail(), 44 // request.getPassword(), 45 // request.getMobile() 46 // ) 47 // ); 48 // 49 // String link = "http://localhost:8080/vraboten/registration/confirm?token=" + token; 50 // emailSender.send( 51 // request.getEmail(), 52 // buildEmail(request.getFirstName(), link)); 53 // 54 // return token; 55 // } 56 // 57 // @Transactional 58 // public String confirmToken(String token) { 59 // ConfirmationTokenW confirmationTokenW = confirmationTokenService 60 // .getTokenW(token) 61 // .orElseThrow(() -> 62 // new IllegalStateException("token not found")); 63 // 64 // if (confirmationTokenW.getConfirmedAt() != null) { 65 // throw new IllegalStateException("email already confirmed"); 66 // } 67 // 68 // LocalDateTime expiredAt = confirmationTokenW.getExpiresAt(); 69 // 70 // if (expiredAt.isBefore(LocalDateTime.now())) { 71 // throw new IllegalStateException("token expired"); 72 // } 73 // 74 // confirmationTokenService.setConfirmedAtW(token); 75 // 76 // vrabotenService.enableVraboten(confirmationTokenW.getRegistriranParkirac().getEmail()); 77 // return "confirmed"; 78 // } 79 // 80 // private String buildEmail(String name, String link) { 81 // return "<div style=\"font-family:Helvetica,Arial,sans-serif;font-size:16px;margin:0;color:#0b0c0c\">\n" + 82 // "\n" + 83 // "<span style=\"display:none;font-size:1px;color:#fff;max-height:0\"></span>\n" + 84 // "\n" + 85 // " <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;min-width:100%;width:100%!important\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n" + 86 // " <tbody><tr>\n" + 87 // " <td width=\"100%\" height=\"53\" bgcolor=\"#0b0c0c\">\n" + 88 // " \n" + 89 // " <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;max-width:580px\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\">\n" + 90 // " <tbody><tr>\n" + 91 // " <td width=\"70\" bgcolor=\"#0b0c0c\" valign=\"middle\">\n" + 92 // " <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" + 93 // " <tbody><tr>\n" + 94 // " <td style=\"padding-left:10px\">\n" + 95 // " \n" + 96 // " </td>\n" + 97 // " <td style=\"font-size:28px;line-height:1.315789474;Margin-top:4px;padding-left:10px\">\n" + 98 // " <span style=\"font-family:Helvetica,Arial,sans-serif;font-weight:700;color:#ffffff;text-decoration:none;vertical-align:top;display:inline-block\">Confirm your email</span>\n" + 99 // " </td>\n" + 100 // " </tr>\n" + 101 // " </tbody></table>\n" + 102 // " </a>\n" + 103 // " </td>\n" + 104 // " </tr>\n" + 105 // " </tbody></table>\n" + 106 // " \n" + 107 // " </td>\n" + 108 // " </tr>\n" + 109 // " </tbody></table>\n" + 110 // " <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" + 111 // " <tbody><tr>\n" + 112 // " <td width=\"10\" height=\"10\" valign=\"middle\"></td>\n" + 113 // " <td>\n" + 114 // " \n" + 115 // " <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" + 116 // " <tbody><tr>\n" + 117 // " <td bgcolor=\"#1D70B8\" width=\"100%\" height=\"10\"></td>\n" + 118 // " </tr>\n" + 119 // " </tbody></table>\n" + 120 // " \n" + 121 // " </td>\n" + 122 // " <td width=\"10\" valign=\"middle\" height=\"10\"></td>\n" + 123 // " </tr>\n" + 124 // " </tbody></table>\n" + 125 // "\n" + 126 // "\n" + 127 // "\n" + 128 // " <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" + 129 // " <tbody><tr>\n" + 130 // " <td height=\"30\"><br></td>\n" + 131 // " </tr>\n" + 132 // " <tr>\n" + 133 // " <td width=\"10\" valign=\"middle\"><br></td>\n" + 134 // " <td style=\"font-family:Helvetica,Arial,sans-serif;font-size:19px;line-height:1.315789474;max-width:560px\">\n" + 135 // " \n" + 136 // " <p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\">Hi " + name + ",</p><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> Thank you for registering. Please click on the below link to activate your account: </p><blockquote style=\"Margin:0 0 20px 0;border-left:10px solid #b1b4b6;padding:15px 0 0.1px 15px;font-size:19px;line-height:25px\"><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> <a href=\"" + link + "\">Activate Now</a> </p></blockquote>\n Link will expire in 15 minutes. <p>See you soon</p>" + 137 // " \n" + 138 // " </td>\n" + 139 // " <td width=\"10\" valign=\"middle\"><br></td>\n" + 140 // " </tr>\n" + 141 // " <tr>\n" + 142 // " <td height=\"30\"><br></td>\n" + 143 // " </tr>\n" + 144 // " </tbody></table><div class=\"yj6qo\"></div><div class=\"adL\">\n" + 145 // "\n" + 146 // "</div></div>"; 147 // } 148 //} -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java
r8588fcb r9ff45d6 12 12 private final ConfirmationTokenRepositoryW confirmationTokenRepositoryW; 13 13 14 <<<<<<< HEAD 14 15 15 public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP, ConfirmationTokenRepositoryW confirmationTokenRepositoryW, parkup.configs.token.ConfirmationTokenRepositoryW confirmationTokenRepositoryW1) { 16 16 this.confirmationTokenRepositoryRP = confirmationTokenRepositoryRP; 17 17 this.confirmationTokenRepositoryW = confirmationTokenRepositoryW1; 18 =======19 public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP, ConfirmationTokenRepositoryW confirmationTokenRepositoryW) {20 this.confirmationTokenRepositoryRP = confirmationTokenRepositoryRP;21 this.confirmationTokenRepositoryW = confirmationTokenRepositoryW;22 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e93923 18 } 24 25 19 public void saveConfirmationTokenRP(ConfirmationTokenRP token){ 26 20 confirmationTokenRepositoryRP.save(token); -
sources/app/src/main/java/parkup/configs/webConfigs/WebSecurityConfig.java
r8588fcb r9ff45d6 1 package parkup.configs ;1 package parkup.configs.webConfigs; 2 2 3 3 import org.springframework.context.annotation.Bean; … … 30 30 .csrf().disable() 31 31 .authorizeRequests() 32 .antMatchers("/vraboten/registration/**")33 .permitAll()34 32 .antMatchers("/registriranParkirac/registration/**") 35 33 .permitAll() 36 34 .anyRequest() 37 .authenticated().and().formLogin(); 35 .authenticated().and().formLogin();//ruta na viktor 38 36 } 39 37 -
sources/app/src/main/java/parkup/controllers/ParkingSessionController.java
r8588fcb r9ff45d6 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 4 import org.springframework.web.bind.annotation.*; 5 import parkup.data.Tablicka; 5 6 import parkup.entities.ParkingSession; 6 7 import parkup.services.ParkingSessionService; … … 33 34 } 34 35 35 @PostMapping({"/parkingSession"}) 36 public Optional<ParkingSession> addParkingSession(@RequestBody ParkingSession parkingSession) { 37 //System.out.println("???????"); 38 return this.parkingSessionService.addParkingSession(parkingSession); 36 @PostMapping({"/parkingSession/{parkingZoneId}"}) 37 public Optional<ParkingSession> startParkingSession(@RequestParam String tablicka, @PathVariable int parkingZoneId) { 38 return this.parkingSessionService.startParkingSession(tablicka,parkingZoneId); 39 39 } 40 // TODO: vidi kako kje funkcionira update na sesija i nejzino plakjanje so frontot 40 41 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()); 42 // @PutMapping({"/parkingSession/{parkingSessionId}"}) 43 // public void updateParkingSession(@PathVariable int parkingSessionId, @RequestBody ParkingSession parkingSession) { 44 // parkingSessionService.updateParkingSession(parkingSessionId, 45 // parkingSession.getTimeStart(), parkingSession.getTimeEnd(), parkingSession.getTablica()); 46 // } 47 // @PutMapping({"/parkingSession/pay/{parkingSessionId"}) 48 // public void payParkingSession(@PathVariable int parkingSessionId){ 49 // parkingSessionService.paySession 50 // } 51 @PutMapping("/parkingSession/end/{parkingSessionId}") 52 public ParkingSession endParkingSession(@PathVariable int parkingSessionId){ 53 return this.parkingSessionService.endParkingSession(parkingSessionId); 54 } 55 @PutMapping("/parkingSession/verify/{parkingSessionId}") 56 public ParkingSession verifyParkingSession(@PathVariable int parkingSessionId,@RequestParam String parkingSpaceName,@RequestParam int parkingZoneId){ 57 return this.parkingSessionService.verifyParkingSession(parkingSessionId,parkingSpaceName,parkingZoneId); 58 } 59 @GetMapping("/parkingSession/calculate/{parkingSessionId}") 60 public int calculateParkingSession(@PathVariable int parkingSessionId){ 61 return this.parkingSessionService.calculatePayment(parkingSessionId); 62 } 63 @PutMapping("/parkingSession/pay/{parkingSessionId}") 64 public boolean payParkingSession(@PathVariable int parkingSessionId,@RequestParam String expireDate){ 65 return this.parkingSessionService.payParkingSession(parkingSessionId,expireDate); 45 66 } 46 67 -
sources/app/src/main/java/parkup/controllers/ParkingSpaceController.java
r8588fcb r9ff45d6 33 33 } 34 34 35 @PostMapping({"/parkingSpace"}) 36 public Optional<ParkingSpace> addParkingSpace(@RequestBody ParkingSpace parkingSpace) { 37 <<<<<<< HEAD 38 System.out.println("???????"); 39 ======= 40 //System.out.println("???????"); 41 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939 42 return this.parkingSpaceService.addParkingSpace(parkingSpace); 35 @PostMapping({"/parkingSpace/add/{parkingZoneId}"}) 36 public Optional<ParkingSpace> addParkingSpace(@RequestBody ParkingSpace parkingSpace,@PathVariable int parkingZoneId) { 37 return this.parkingSpaceService.addParkingSpace(parkingSpace,parkingZoneId); 43 38 } 44 39 45 40 @PutMapping({"/parkingSpace/{parkingSpaceId}"}) 46 41 public void updateParkingSpace(@PathVariable int parkingSpaceId, @RequestBody ParkingSpace parkingSpace) { 47 parkingSpaceService.updateParkingSpace(parkingSpaceId, parkingSpace.getPsName(), parkingSpace.isTaken(), 48 parkingSpace.isHandicaped(), parkingSpace.getLat(), parkingSpace.getLng()); 42 parkingSpaceService.updateParkingSpace(parkingSpaceId, parkingSpace.getPsName(), parkingSpace.isTaken(), parkingSpace.getLat(), parkingSpace.getLng()); 49 43 } 50 44 -
sources/app/src/main/java/parkup/controllers/ParkingZoneController.java
r8588fcb r9ff45d6 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 4 import org.springframework.web.bind.annotation.*; 5 import parkup.data.ParkingZoneAdminView; 5 6 import parkup.entities.ParkingZone; 6 7 import parkup.services.ParkingZoneService; … … 49 50 50 51 @PutMapping({"/parkingZone/{parkingZoneId}"}) 51 public ParkingZone updateParkingZone(@PathVariable int parkingZoneId, @RequestBody ParkingZone parkingZone) { 52 return this.parkingZoneService.updateParkingZone(parkingZoneId, parkingZone.getPzName(), parkingZone.getPrice(), parkingZone.getCapacity(), 53 parkingZone.getLocation(), parkingZone.getFrom(), parkingZone.getTo(), parkingZone.getColor(), 54 <<<<<<< HEAD 52 public ParkingZone updateParkingZone(@PathVariable int parkingZoneId, @RequestBody ParkingZoneAdminView parkingZone) { 53 return this.parkingZoneService.updateParkingZone(parkingZoneId, parkingZone.getPzName(), parkingZone.getPrice(), 54 parkingZone.getAddress(), parkingZone.getTime_from(), parkingZone.getTime_to(), parkingZone.getColor(), 55 55 parkingZone.getParkingSpaces(), parkingZone.getParkingZoneLocation(),parkingZone.getOdgovorniLica()); 56 ======= 57 parkingZone.getParkingSpaces(), parkingZone.getParkingZoneLocation()); 58 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939 56 59 57 } 60 58 -
sources/app/src/main/java/parkup/controllers/VrabotenController.java
r8588fcb r9ff45d6 3 3 import java.util.List; 4 4 import java.util.Optional; 5 import java.util.stream.Collectors; 5 6 6 7 import org.springframework.beans.factory.annotation.Autowired; 7 8 import org.springframework.web.bind.annotation.*; 8 9 import parkup.configs.RegistrationRequest; 9 import parkup.configs.RegistrationServiceW; 10 //import parkup.configs.RegistrationServiceW; 11 import parkup.data.AddUpdateVraboten; 12 import parkup.data.enumarations.EmployeeStatus; 10 13 import parkup.entities.Vraboten; 11 14 import parkup.services.VrabotenService; … … 15 18 public class VrabotenController { 16 19 private final VrabotenService vrabotenService; 17 private final RegistrationServiceW registrationServiceW;20 // private final RegistrationServiceW registrationServiceW; 18 21 19 22 @Autowired 20 public VrabotenController(VrabotenService vrabotenService , RegistrationServiceW registrationServiceW) {23 public VrabotenController(VrabotenService vrabotenService) { 21 24 this.vrabotenService = vrabotenService; 22 this.registrationServiceW = registrationServiceW;23 25 } 24 26 … … 44 46 45 47 @PostMapping({"/vraboten"}) 46 public Optional<Vraboten> addVraboten(@RequestBody Vraboten vraboten) { 47 return this.vrabotenService.addVraboten(vraboten); 48 public Optional<Vraboten> addVraboten(@RequestBody AddUpdateVraboten vraboten) { 49 return this.vrabotenService.addVraboten(vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(), 50 vraboten.getMobileNumber(), vraboten.getEmail(), vraboten.getStatus(),vraboten.getParkingZones()); 48 51 } 49 52 50 @P ostMapping({"/vraboten/{vrabotenId}"})53 @PutMapping({"/vraboten/lock/{vrabotenId}"}) 51 54 public void lockVraboten(@PathVariable int vrabotenId) { 52 55 this.vrabotenService.lockVrabotenAcc(vrabotenId); 53 56 } 54 57 58 // @PostMapping({"/vraboten/setStatus/{vrabotenId}"}) 59 // public void setVrabotenStatus(@PathVariable int vrabotenId,@RequestParam String vrabotenStatus){ 60 // this.vrabotenService.setVrabotenStatus(vrabotenId,vrabotenStatus); 61 // } 62 55 63 @PutMapping({"/vraboten/{vrabotenId}"}) 56 public Vraboten updateVraboten(@PathVariable int vrabotenId, @RequestBody Vraboten vraboten) {57 return this.vrabotenService.updateVraboten(vrabotenId, 58 vraboten.getMobile (), vraboten.getEmail(), vraboten.getStatus());64 public Vraboten updateVraboten(@PathVariable int vrabotenId, @RequestBody AddUpdateVraboten vraboten) { 65 return this.vrabotenService.updateVraboten(vrabotenId,vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(), 66 vraboten.getMobileNumber(), vraboten.getEmail(), vraboten.getStatus(),vraboten.getParkingZones()); 59 67 } 60 68 … … 64 72 } 65 73 66 @PostMapping({"/vraboten/registration"})67 public String register(@RequestBody RegistrationRequest request){68 return registrationServiceW.register(request);69 }70 71 @GetMapping(path = "/vraboten/registration/confirm")72 public String confirm(@RequestParam("token") String token) {73 return registrationServiceW.confirmToken(token);74 }74 // @PostMapping({"/vraboten/registration"}) 75 // public String register(@RequestBody RegistrationRequest request){ 76 // return registrationServiceW.register(request); 77 // } 78 // 79 // @GetMapping(path = "/vraboten/registration/confirm") 80 // public String confirm(@RequestParam("token") String token) { 81 // return registrationServiceW.confirmToken(token); 82 // } 75 83 } -
sources/app/src/main/java/parkup/data/ParkingZoneLocation.java
r8588fcb r9ff45d6 20 20 private int parkingZoneLocationId; 21 21 22 @OneToOne 22 @OneToOne(cascade = {CascadeType.ALL}) 23 23 private Location centre; 24 24 25 @OneToMany 25 @OneToMany(cascade = {CascadeType.ALL}) 26 26 private List<Location> teminja; 27 27 -
sources/app/src/main/java/parkup/data/VrabotenDemo.java
r8588fcb r9ff45d6 2 2 3 3 public class VrabotenDemo { 4 4 private int vrabotenId; 5 5 private String firstName; 6 6 private String lastName; … … 9 9 public VrabotenDemo() {} 10 10 11 public VrabotenDemo(String firstName, String lastName, String email) { 11 public VrabotenDemo(int id,String firstName, String lastName, String email) { 12 this.vrabotenId=id; 12 13 this.firstName = firstName; 13 14 this.lastName = lastName; 14 15 this.email = email; 16 } 17 18 public int getVrabotenId() { 19 return vrabotenId; 20 } 21 22 public void setVrabotenId(int vrabotenId) { 23 this.vrabotenId = vrabotenId; 15 24 } 16 25 -
sources/app/src/main/java/parkup/entities/Guest.java
r8588fcb r9ff45d6 32 32 @Column(name = "mobile") 33 33 private String mobile; 34 35 @OneToOne 36 private ParkingSession session; 34 37 35 38 public Guest() {} -
sources/app/src/main/java/parkup/entities/ParkingSession.java
r8588fcb r9ff45d6 1 1 package parkup.entities; 2 2 3 import org.springframework.format.annotation.DateTimeFormat; 3 4 import parkup.data.Tablicka; 5 import parkup.data.enumarations.SessionStatus; 4 6 5 7 import javax.persistence.*; 8 import java.time.LocalDateTime; 6 9 7 10 @Entity … … 22 25 private int pssId; 23 26 27 @DateTimeFormat(pattern = "yyyy-MM-dd-HH-mm-ss") 24 28 @Column(name = "time_start") 25 private StringtimeStart;29 private LocalDateTime timeStart; 26 30 31 @DateTimeFormat(pattern = "yyyy-MM-dd-HH-mm-ss") 27 32 @Column(name = "time_end") 28 private StringtimeEnd;33 private LocalDateTime timeEnd; 29 34 30 35 @OneToOne(cascade = {CascadeType.ALL}) … … 32 37 private Tablicka tablica; 33 38 34 public ParkingSession() {} 39 @Column(name="session_status") 40 @Enumerated 41 private SessionStatus status; 35 42 36 public ParkingSession(int pssId, String timeStart, String timeEnd, Tablicka tablica) { 37 this.pssId = pssId; 38 this.timeStart = timeStart; 39 this.timeEnd = timeEnd; 40 this.tablica = tablica; 43 @ManyToOne 44 private ParkingSpace parkingSpace; 45 46 @ManyToOne 47 private ParkingZone parkingZone; 48 49 50 // public ParkingSpace getParkingSpace() { 51 // return parkingSpace; 52 // } 53 // 54 // public void setParkingSpace(ParkingSpace parkingSpace) { 55 // this.parkingSpace = parkingSpace; 56 // } 57 58 public ParkingSession() { 59 41 60 } 42 61 43 public ParkingSession(String timeStart, String timeEnd, Tablicka tablica) { 44 this.timeStart = timeStart; 45 this.timeEnd = timeEnd; 46 this.tablica = tablica; 62 public ParkingSession(Tablicka tablica){ 63 this.timeStart= LocalDateTime.now(); 64 this.timeEnd=null; 65 this.tablica=tablica; 66 this.status=SessionStatus.STARTED_UNVERIFIED; 47 67 } 68 48 69 49 70 public int getPssId() { … … 55 76 } 56 77 57 public StringgetTimeStart() {58 return t his.timeStart;78 public LocalDateTime getTimeStart() { 79 return timeStart; 59 80 } 60 81 61 public void setTimeStart( StringtimeStart) {82 public void setTimeStart(LocalDateTime timeStart) { 62 83 this.timeStart = timeStart; 63 84 } 64 85 65 public StringgetTimeEnd() {66 return t his.timeEnd;86 public LocalDateTime getTimeEnd() { 87 return timeEnd; 67 88 } 68 89 69 public void setTimeEnd( StringtimeEnd) {90 public void setTimeEnd(LocalDateTime timeEnd) { 70 91 this.timeEnd = timeEnd; 71 92 } … … 78 99 this.tablica = tablica; 79 100 } 101 102 public SessionStatus getStatus() { 103 return status; 104 } 105 106 public void setStatus(SessionStatus status) { 107 this.status = status; 108 } 109 110 public ParkingSpace getParkingSpace() { 111 return parkingSpace; 112 } 113 114 public ParkingZone getParkingZone() { 115 return parkingZone; 116 } 117 118 public void setParkingSpace(ParkingSpace parkingSpace) { 119 this.parkingSpace = parkingSpace; 120 } 121 122 public void setParkingZone(ParkingZone parkingZone) { 123 this.parkingZone = parkingZone; 124 } 80 125 } -
sources/app/src/main/java/parkup/entities/ParkingSpace.java
r8588fcb r9ff45d6 2 2 3 3 import javax.persistence.*; 4 import java.util.ArrayList; 5 import java.util.List; 4 6 5 7 @Entity … … 24 26 25 27 @Column(name = "isTaken") 26 private Boolean isTaken; 27 28 @Column(name = "isHandicaped") 29 private Boolean isHandicaped; 28 private boolean taken; 30 29 31 30 @Column(name = "latitude") 32 31 private float lat; 33 <<<<<<< HEAD 32 34 33 35 34 @Column(name = "longitude") … … 39 38 // @JoinColumn(name = "parking_zona") 40 39 // private ParkingZone parkingZone; 40 // @ManyToOne(cascade = {CascadeType.ALL}) 41 // @JoinColumn(name = "parking_zona") 42 // private ParkingZone parkingZone; 43 // 44 // @OneToMany 45 // @Column(name="parking_sessions") 46 // private List<ParkingSession> sessions; 41 47 42 48 public ParkingSpace() { 43 System.out.println("Default ParkingSpace constructor" + lat); 49 44 50 } 45 51 46 ======= 47 48 @Column(name = "longitude") 49 private float lng; 50 51 @OneToOne(cascade = {CascadeType.ALL}) 52 @JoinColumn(name = "parking_zona") 53 private ParkingZone parkingZone; 54 55 public ParkingSpace() {} 56 57 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939 58 public ParkingSpace(int psId, String psName, boolean isTaken, boolean isHandicaped, float lat, float lng) { 52 public ParkingSpace(int psId, String psName, boolean isTaken, float lat, float lng) { 59 53 this.psId = psId; 60 54 this.psName = psName; 61 this.isTaken = isTaken; 62 this.isHandicaped = isHandicaped; 55 this.taken = isTaken; 63 56 this.lat = lat; 64 57 this.lng = lng; 65 58 } 66 59 67 public ParkingSpace(String psName, boolean isTaken, boolean isHandicaped,float lat, float lng) {60 public ParkingSpace(String psName, float lat, float lng) { 68 61 this.psName = psName; 69 this.isTaken = isTaken; 70 this.isHandicaped = isHandicaped; 62 this.taken = false; 71 63 this.lat = lat; 72 64 this.lng = lng; … … 76 68 return this.psId; 77 69 } 70 71 // public ParkingZone getParkingZone() { 72 // return parkingZone; 73 // } 74 // 75 // public void setParkingZone(ParkingZone parkingZone) { 76 // this.parkingZone = parkingZone; 77 // } 78 78 79 79 80 public void setPsId(int psId) { … … 90 91 91 92 public boolean isTaken() { 92 return this. isTaken;93 return this.taken; 93 94 } 94 95 95 96 public void setTaken(boolean isTaken) { 96 this.isTaken = isTaken; 97 } 98 99 public boolean isHandicaped() { 100 return this.isHandicaped; 101 } 102 103 public void setHandicaped(boolean isHandicaped) { 104 this.isHandicaped = isHandicaped; 97 this.taken = isTaken; 105 98 } 106 99 … … 120 113 this.lng = lng; 121 114 } 122 <<<<<<< HEAD 115 123 116 124 117 @Override … … 126 119 return "ParkingSpace{" + 127 120 "psName='" + psName + '\'' + 128 ", isTaken=" + isTaken + 129 ", isHandicaped=" + isHandicaped + 121 ", isTaken=" + taken + 130 122 ", lat=" + lat + 131 123 ", lng=" + lng+ 132 124 '}'; 133 125 } 134 =======135 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939136 126 } 137 127 -
sources/app/src/main/java/parkup/entities/ParkingZone.java
r8588fcb r9ff45d6 30 30 private int price; 31 31 32 @Transient 32 33 @Column(name = "capacity") 33 34 private int capacity; 34 35 <<<<<<< HEAD36 35 @Column(name = "time_from") //za rabotni casovi od: 37 36 private int from; 38 37 39 38 @Column(name = "time_to") //za rabotni casovi do: 40 =======41 @Column(name = "vreme_od") //za rabotni casovi od:42 private int from;43 44 @Column(name = "vreme_do") //za rabotni casovi do:45 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e93946 39 private int to; 47 40 48 @Column(name = " lokacija")49 private String location;41 @Column(name = "address") 42 private String address; 50 43 44 @Transient 51 45 @Column(name = "zafateniMesta") 52 private int zafateniMesta;46 private int takenSpaces; 53 47 54 48 @Column(name = "color") 55 49 private String color; 56 50 57 @ManyToMany(cascade = {CascadeType.ALL}) 58 @JoinColumn(name="odgovorniLica",nullable = true) 59 private List<Vraboten> odgovorniLica; 51 // @ManyToMany(cascade = {CascadeType.ALL}) 52 // private List<Vraboten> odgovorniLica; 60 53 61 @OneToMany(cascade = {CascadeType. ALL})54 @OneToMany(cascade = {CascadeType.MERGE}) 62 55 private List<ParkingSpace> parkingSpaces; 56 57 63 58 64 59 @OneToOne(cascade = {CascadeType.ALL}) … … 66 61 67 62 public ParkingZone() { 68 this. zafateniMesta= 0;63 this.takenSpaces = 0; 69 64 this.parkingSpaces = new ArrayList<ParkingSpace>(); 70 65 } … … 72 67 public ParkingZone(String pzName) { 73 68 this.pzName = pzName; 74 this. zafateniMesta= 0;69 this.takenSpaces = 0; 75 70 this.parkingSpaces = new ArrayList<ParkingSpace>(); 76 71 } 77 72 78 public ParkingZone(int pzId, String pzName, int price, int capacity, String location, List<ParkingSpace> parkingSpaces, String color, int from, int to) {73 public ParkingZone(int pzId, String pzName, int price, int capacity, String address, List<ParkingSpace> parkingSpaces, String color, int from, int to) { 79 74 this.pzId = pzId; 80 75 this.pzName = pzName; 81 76 this.price = price; 82 77 this.capacity = capacity; 83 this. location = location;84 this. zafateniMesta= 0;78 this.address = address; 79 this.takenSpaces = 0; 85 80 this.parkingSpaces = parkingSpaces; 86 81 this.color = color; … … 89 84 } 90 85 91 public ParkingZone(String pzName, int price, int capacity, String location, List<ParkingSpace> parkingSpaces, String color, int from, int to) {86 public ParkingZone(String pzName, int price, int capacity, String address, List<ParkingSpace> parkingSpaces, String color, int from, int to) { 92 87 this.pzName = pzName; 93 88 this.price = price; 94 89 this.capacity = capacity; 95 this. location = location;96 this. zafateniMesta= 0;90 this.address = address; 91 this.takenSpaces = 0; 97 92 this.parkingSpaces = parkingSpaces; 98 93 this.color = color; … … 133 128 } 134 129 135 public String get Location() {136 return this. location;130 public String getAddress() { 131 return this.address; 137 132 } 138 133 139 public void set Location(String location) {140 this. location= location;134 public void setAddress(String location) { 135 this.address = location; 141 136 } 142 137 143 public int get ZafateniMesta() {return zafateniMesta;}138 public int getTakenSpaces() {return takenSpaces;} 144 139 145 public void set ZafateniMesta(int zafateniMesta) {this.zafateniMesta = zafateniMesta;}140 public void setTakenSpaces(int takenSpaces) {this.takenSpaces = takenSpaces;} 146 141 147 142 public List<ParkingSpace> getParkingSpaces() {return parkingSpaces;} … … 181 176 } 182 177 183 public List<Vraboten> getOdgovorniLica() {184 return odgovorniLica;185 }186 187 public void setOdgovorniLica(List<Vraboten> odgovorniLica) {188 this.odgovorniLica = odgovorniLica;189 }178 // public List<Vraboten> getOdgovorniLica() { 179 // return odgovorniLica; 180 // } 181 // 182 // public void setOdgovorniLica(List<Vraboten> odgovorniLica) { 183 // this.odgovorniLica = odgovorniLica; 184 // } 190 185 } -
sources/app/src/main/java/parkup/entities/RegistriranParkirac.java
r8588fcb r9ff45d6 51 51 private String role; 52 52 53 @OneToOne 54 private ParkingSession session; 55 53 56 private boolean locked; 54 57 … … 58 61 this.regTablicki = new ArrayList<Tablicka>(); 59 62 this.role = "ROLE_REGISTRIRAN_PARKIRAC"; 63 session=null; 60 64 } 61 65 … … 69 73 this.mobile = mobile; 70 74 this.role = "ROLE_REGISTRIRAN_PARKIRAC"; 75 session=null; 71 76 } 72 77 … … 79 84 this.mobile = mobile; 80 85 this.role = "ROLE_REGISTRIRAN_PARKIRAC"; 86 session=null; 81 87 } 82 88 … … 88 94 this.mobile = mobile; 89 95 this.role = "ROLE_REGISTRIRAN_PARKIRAC"; 90 } 96 session=null; 97 } 98 99 public ParkingSession getSession() { 100 return session; 101 } 102 103 public void setSession(ParkingSession session) { 104 this.session = session; 105 } 106 107 public boolean isLocked() { 108 return locked; 109 } 110 111 public void setLocked(boolean locked) { 112 this.locked = locked; 113 } 114 115 public void setEnabled(boolean enabled) { 116 this.enabled = enabled; 117 } 118 91 119 92 120 public int getRegParkId() { -
sources/app/src/main/java/parkup/entities/Vraboten.java
r8588fcb r9ff45d6 4 4 import org.springframework.security.core.userdetails.UserDetails; 5 5 import parkup.data.VrabotenDemo; 6 import parkup.data.enumarations.EmployeeStatus; 6 7 7 8 import javax.persistence.*; … … 57 58 58 59 @ManyToMany(cascade = {CascadeType.ALL}) 59 @JoinColumn(name = "zona", nullable = false)60 60 private List<ParkingZone> parkingZones; 61 61 62 62 @Column(name = "status") 63 private String status; 63 private EmployeeStatus status; 64 65 public void setLocked(boolean locked) { 66 this.locked = locked; 67 } 64 68 65 69 @Column(name="locked") … … 73 77 this.role = "ROLE_VRABOTEN"; 74 78 this.parkingZones = new ArrayList<ParkingZone>(); 75 this.enabled = false;76 this.status = "neRaboti";79 this.enabled = true; 80 this.status = EmployeeStatus.NOT_WORKING; 77 81 } 78 82 … … 86 90 this.parkingZones = parkingZones; 87 91 this.role = "ROLE_VRABOTEN"; 88 this.enabled = false;89 this.status = "neRaboti";92 this.enabled = true; 93 this.status = EmployeeStatus.NOT_WORKING; 90 94 } 91 95 … … 98 102 this.parkingZones = parkingZones; 99 103 this.role = "ROLE_VRABOTEN"; 100 this.enabled = false;101 this.status = "neRaboti";104 this.enabled = true; 105 this.status = EmployeeStatus.NOT_WORKING; 102 106 } 103 107 … … 109 113 this.mobile=mobile; 110 114 this.parkingZones=new ArrayList<>(); 111 this.enabled=false;112 this.status="neRaboti";113 115 this.role="ROLE_VRABOTEN"; 116 this.enabled=true; 117 this.status = EmployeeStatus.NOT_WORKING; 114 118 } 115 119 … … 204 208 public void setParkingZones(List<ParkingZone> parkingZones) {this.parkingZones = parkingZones;} 205 209 206 public StringgetStatus() {return status;}207 208 public void setStatus( Stringstatus) {this.status = status;}210 public EmployeeStatus getStatus() {return status;} 211 212 public void setStatus(EmployeeStatus status) {this.status = status;} 209 213 210 214 public boolean isAccount() {return enabled;} -
sources/app/src/main/java/parkup/repositories/ParkingSessionRepository.java
r8588fcb r9ff45d6 4 4 import parkup.entities.ParkingSession; 5 5 6 import java.util.List; 7 6 8 public interface ParkingSessionRepository extends JpaRepository<ParkingSession, Integer> { 7 9 8 10 ParkingSession findByPssId(int parkingSessionId); 9 11 List<ParkingSession> findByParkingZonePzName(String pzName); 10 12 void deleteByPssId(int parkingSessionId); 11 13 } -
sources/app/src/main/java/parkup/repositories/ParkingSpaceRepository.java
r8588fcb r9ff45d6 4 4 import parkup.entities.ParkingSpace; 5 5 6 import java.util.List; 7 6 8 public interface ParkingSpaceRepository extends JpaRepository<ParkingSpace, Integer> { 7 9 ParkingSpace findByPsName(String psName); 8 9 10 ParkingSpace findByPsId(int parkingSpaceId); 10 11 11 void deleteByPsId(int parkingSpaceId); 12 12 } -
sources/app/src/main/java/parkup/repositories/ParkingZoneRepository.java
r8588fcb r9ff45d6 3 3 import org.springframework.data.jpa.repository.JpaRepository; 4 4 import org.springframework.stereotype.Repository; 5 import parkup.entities.ParkingSpace; 5 6 import parkup.entities.ParkingZone; 7 8 import java.util.List; 6 9 7 10 @Repository … … 10 13 11 14 ParkingZone findByPzName(String name); 12 13 15 void deleteByPzId(int id); 14 16 } -
sources/app/src/main/java/parkup/services/AdministratorService.java
r8588fcb r9ff45d6 137 137 138 138 String token = UUID.randomUUID().toString(); 139 <<<<<<< HEAD140 // ConfirmationTokenRP confirmationToken = new ConfirmationTokenRP(141 // token,142 // LocalDateTime.now(),143 // LocalDateTime.now().plusMinutes(15),144 // administrator145 // );146 =======147 //ConfirmationTokenRP confirmationToken = new ConfirmationTokenRP(148 // token,149 // LocalDateTime.now(),150 // LocalDateTime.now().plusMinutes(15),151 // administrator152 //);153 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939154 139 155 //confirmationTokenService.saveConfirmationToken(confirmationToken);156 140 157 141 // TODO: SEND EMAIL -
sources/app/src/main/java/parkup/services/ParkingSessionService.java
r8588fcb r9ff45d6 4 4 import org.springframework.stereotype.Service; 5 5 import parkup.data.Tablicka; 6 import parkup.data.enumarations.SessionStatus; 6 7 import parkup.entities.ParkingSession; 8 import parkup.entities.ParkingSpace; 9 import parkup.entities.ParkingZone; 7 10 import parkup.repositories.ParkingSessionRepository; 11 import parkup.repositories.ParkingSpaceRepository; 12 import parkup.repositories.ParkingZoneRepository; 13 import parkup.repositories.TablickaRepository; 8 14 9 15 import javax.transaction.Transactional; 16 import java.time.Duration; 17 import java.time.LocalDateTime; 10 18 import java.util.List; 11 import java.util.Objects;12 19 import java.util.Optional; 20 import java.util.stream.Collectors; 13 21 14 22 @Service 15 23 public class ParkingSessionService { 16 24 private final ParkingSessionRepository parkingSessionRepository; 25 private final ParkingZoneRepository parkingZoneRepository; 26 private final ParkingSpaceRepository parkingSpaceRepository; 27 private final TablickaRepository tablickaRepository; 17 28 18 29 @Autowired 19 public ParkingSessionService(ParkingSessionRepository parkingSessionRepository ) {30 public ParkingSessionService(ParkingSessionRepository parkingSessionRepository, ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, TablickaRepository tablickaRepository) { 20 31 this.parkingSessionRepository = parkingSessionRepository; 32 this.parkingZoneRepository = parkingZoneRepository; 33 this.parkingSpaceRepository = parkingSpaceRepository; 34 this.tablickaRepository = tablickaRepository; 21 35 } 22 36 37 //TODO add getMethod for paid sessions or all sessions 38 23 39 public List<ParkingSession> getAllParkingSessions() { 24 return parkingSessionRepository.findAll(); 40 //Get all sessions that arent paid 41 return parkingSessionRepository.findAll().stream() 42 .filter(s->!s.getStatus().equals(SessionStatus.ENDED_PAID)) 43 .collect(Collectors.toList()); 25 44 } 26 45 … … 30 49 } 31 50 32 @Transactional51 /* @Transactional 33 52 public void updateParkingSession(int parkingSessionId, String timeStart, String timeEnd, Tablicka tablicka) { 34 53 Optional<ParkingSession> parkingSessionOpt = Optional.ofNullable(parkingSessionRepository.findByPssId(parkingSessionId)); … … 48 67 throw new IllegalStateException("The ParkingSession does not exist"); 49 68 } 50 } 51 69 }*/ 70 @Transactional 52 71 public Optional<ParkingSession> deleteParkingSession(int parkingSessionId) { 53 72 Optional<ParkingSession> parkingSessionOpt = Optional.ofNullable(parkingSessionRepository.findByPssId(parkingSessionId)); 54 73 if (parkingSessionOpt.isPresent()) { 74 parkingSessionOpt.get().getParkingSpace().setTaken(false); 55 75 parkingSessionRepository.deleteByPssId(parkingSessionId); 56 76 return parkingSessionOpt; … … 60 80 } 61 81 62 public Optional<ParkingSession> addParkingSession(ParkingSession parkingSession) { 63 Optional<ParkingSession> parkingSessionOpt = Optional.ofNullable(parkingSessionRepository.findByPssId(parkingSession.getPssId())); 64 if (parkingSessionOpt.isPresent()) { 65 throw new IllegalStateException("ID already taken, ParkingSession cannot be added"); 66 } else { 67 System.out.println(parkingSession); 68 parkingSessionRepository.save(parkingSession); 69 return parkingSessionOpt; 82 @Transactional 83 public Optional<ParkingSession> startParkingSession(String tablica, int parkingZoneId) { 84 ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId); 85 Tablicka tablicka = tablickaRepository.findByTablica(tablica); 86 if(tablicka==null) { 87 tablickaRepository.save(new Tablicka(tablica)); 70 88 } 89 tablicka=tablickaRepository.findByTablica(tablica); 90 ParkingSession sessionToAdd = new ParkingSession(tablicka); 91 sessionToAdd.setParkingZone(parkingZone); 92 parkingSessionRepository.save(sessionToAdd); 93 return Optional.of(sessionToAdd); 94 95 } 96 97 // public void executePayment(int id){ 98 // ParkingSession session = parkingSessionRepository.findByPssId(id); 99 // if(session==null){ 100 // throw new IllegalStateException("No such session exists"); 101 // } 102 // else if(session.getStatus()== SessionStatus.ENDED_UNPAID){ 103 // throw new IllegalStateException("Cannot execute payment on an ended session"); 104 // } 105 // session.setStatus(SessionStatus.ENDED_PAID); 106 // } 107 108 public int calculatePayment(int id){ 109 ParkingSession session = parkingSessionRepository.findByPssId(id); 110 if(session==null){ 111 throw new IllegalStateException("No such session exists"); 112 } 113 else if(session.getStatus()== SessionStatus.ENDED_UNPAID){ 114 throw new IllegalStateException("Cannot calculate payment on an ended session"); 115 } 116 int price = session.getParkingZone().getPrice(); 117 return (int) (Math.ceil(Duration.between(session.getTimeEnd(),session.getTimeStart()).toMinutes()/60.0)*price); 118 } 119 @Transactional 120 public ParkingSession verifyParkingSession(int id,String parkingSpaceName,int parkingZoneId){ 121 ParkingSession parkingSession = parkingSessionRepository.findByPssId(id); 122 ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId); 123 if(parkingSession==null){ 124 throw new IllegalStateException("No such session exists"); 125 } 126 else if(parkingSession.getStatus()==SessionStatus.STARTED_VERIFIED){ 127 throw new IllegalStateException("The session you are trying to verify has already been verified"); 128 } 129 // else if(parkingSession.getStatus()!=SessionStatus.STARTED_) 130 if(!parkingZone.getParkingSpaces().contains(parkingSpaceRepository.findByPsName(parkingSpaceName))){ 131 throw new IllegalStateException("Ivalid parking space inserted. Type in a new parking space or let the admin know that they should add the parking space to this zone"); 132 } 133 parkingSession.setStatus(SessionStatus.STARTED_VERIFIED); 134 ParkingSpace parkingSpace = parkingZoneRepository.findByPzId(parkingZoneId).getParkingSpaces().stream().filter(ps->ps.getPsName().equals(parkingSpaceName)).findFirst().get(); 135 parkingSpace.setTaken(true); 136 parkingSession.setParkingSpace(parkingSpace); 137 return parkingSession; 138 } 139 @Transactional 140 public ParkingSession endParkingSession(int id){ 141 ParkingSession parkingSession = parkingSessionRepository.findByPssId(id); 142 if(parkingSession==null){ 143 throw new IllegalStateException("No such session exists"); 144 } 145 else if(parkingSession.getStatus()==SessionStatus.ENDED_UNPAID){ 146 throw new IllegalStateException("The session you are trying to end has already been ended"); 147 } 148 parkingSession.setStatus(SessionStatus.ENDED_UNPAID); 149 parkingSession.setTimeEnd(LocalDateTime.now()); 150 return parkingSession; 151 } 152 @Transactional 153 public boolean payParkingSession(int id,String date){ 154 ParkingSession parkingSession = parkingSessionRepository.findByPssId(id); 155 String expMonthString=date.split("/")[0]; 156 String expYearString=date.split("/")[1]; 157 if(expMonthString.startsWith("0")) 158 expMonthString=expYearString.substring(1); 159 if(expYearString.startsWith("0")) 160 expYearString=expYearString.substring(1); 161 int expMonth=Integer.parseInt(expMonthString); 162 int expYear=Integer.parseInt(expYearString); 163 int month = LocalDateTime.now().getMonth().getValue(); 164 int year = LocalDateTime.now().getYear()%100; 165 if(year>expYear){ 166 throw new IllegalStateException("Your card has expired or the date that you have entered is incorrect"); 167 } 168 else if(year==expYear){ 169 if(month>=expMonth) 170 throw new IllegalStateException("Your card has expired or the date that you have entered is incorrect"); 171 } 172 if(parkingSession==null){ 173 throw new IllegalStateException("No such session exists"); 174 } 175 else if(parkingSession.getStatus()==SessionStatus.ENDED_PAID){ 176 throw new IllegalStateException("The session has already been paid for"); 177 } 178 parkingSession.setStatus(SessionStatus.ENDED_PAID); 179 parkingSession.getParkingSpace().setTaken(false); 180 return true; 71 181 } 72 182 } -
sources/app/src/main/java/parkup/services/ParkingSpaceService.java
r8588fcb r9ff45d6 5 5 import parkup.entities.ParkingSpace; 6 6 import parkup.repositories.ParkingSpaceRepository; 7 import parkup.repositories.ParkingZoneRepository; 7 8 8 9 import javax.transaction.Transactional; … … 10 11 import java.util.Objects; 11 12 import java.util.Optional; 13 import java.util.stream.Collectors; 12 14 13 15 @Service 14 16 public class ParkingSpaceService { 15 17 private final ParkingSpaceRepository parkingSpaceRepository; 18 private final ParkingZoneRepository parkingZoneRepository; 16 19 17 20 @Autowired 18 public ParkingSpaceService(ParkingSpaceRepository parkingSpaceRepository ) {21 public ParkingSpaceService(ParkingSpaceRepository parkingSpaceRepository, ParkingZoneRepository parkingZoneRepository) { 19 22 this.parkingSpaceRepository = parkingSpaceRepository; 23 this.parkingZoneRepository = parkingZoneRepository; 20 24 } 21 25 … … 29 33 } 30 34 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 Parking Zone with a different name");35 public Optional<ParkingSpace> addParkingSpace(ParkingSpace parkingSpace,int parkingZoneId) { 36 List<String> names = parkingZoneRepository.findByPzId(parkingZoneId).getParkingSpaces().stream().map(ParkingSpace::getPsName).collect(Collectors.toList()); 37 if (names.contains(parkingSpace.getPsName())) { 38 throw new IllegalStateException("Name already taken, try adding a ParkingSpace with a different name"); 35 39 } else { 36 40 System.out.println(parkingSpace); 37 41 parkingSpaceRepository.save(parkingSpace); 38 42 } 39 return parkingSpaceOpt;43 return Optional.of(parkingSpace); 40 44 } 41 45 42 46 @Transactional 43 public ParkingSpace updateParkingSpace(int parkingSpaceId, String psName, boolean taken, boolean handicaped,float lat, float lng) {47 public ParkingSpace updateParkingSpace(int parkingSpaceId, String psName, boolean taken, float lat, float lng) { 44 48 Optional<ParkingSpace> ParkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId)); 45 49 if (ParkingSpaceOpt.isPresent()) { … … 58 62 } 59 63 60 if (!Objects.equals(ParkingSpaceNov.isHandicaped(), handicaped)) {61 ParkingSpaceNov.setHandicaped(handicaped);62 }63 64 64 65 if(lat!=0 && !Objects.equals(ParkingSpaceNov.getLat(), lat)){ … … 85 86 return parkingSpaceOpt; 86 87 } 88 public long getNumberOfTakenSpaces(){ 89 return parkingSpaceRepository.findAll().stream().filter(ParkingSpace::isTaken).count(); 90 } 87 91 } -
sources/app/src/main/java/parkup/services/ParkingZoneService.java
r8588fcb r9ff45d6 2 2 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.data.jpa.repository.Modifying;5 4 import org.springframework.stereotype.Service; 6 5 import parkup.data.ParkingZoneLocation; 6 import parkup.entities.ParkingSession; 7 7 import parkup.entities.ParkingSpace; 8 8 import parkup.entities.ParkingZone; 9 9 import parkup.entities.Vraboten; 10 import parkup.repositories.ParkingSessionRepository; 11 import parkup.repositories.ParkingSpaceRepository; 10 12 import parkup.repositories.ParkingZoneRepository; 13 import parkup.repositories.VrabotenRepository; 11 14 12 15 import javax.transaction.Transactional; … … 19 22 public class ParkingZoneService { 20 23 private final ParkingZoneRepository parkingZoneRepository; 24 private final ParkingSpaceRepository parkingSpaceRepository; 25 private final VrabotenRepository vrabotenRepository; 26 private final ParkingSessionRepository parkingSessionRepository; 21 27 22 28 @Autowired 23 public ParkingZoneService(ParkingZoneRepository parkingZoneRepository ) {29 public ParkingZoneService(ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, VrabotenRepository vrabotenRepository, ParkingSessionRepository parkingSessionRepository) { 24 30 this.parkingZoneRepository = parkingZoneRepository; 31 this.parkingSpaceRepository = parkingSpaceRepository; 32 this.parkingSessionRepository = parkingSessionRepository; 33 this.vrabotenRepository = vrabotenRepository; 25 34 } 26 35 … … 37 46 List<ParkingZone> parkingZones = this.parkingZoneRepository.findAll(); 38 47 List<String> parkingZonesNames = new ArrayList<>(); 39 for (ParkingZone pz : parkingZones) {48 for (ParkingZone pz : parkingZones) { 40 49 parkingZonesNames.add(pz.getPzName()); 41 50 } … … 65 74 } 66 75 67 <<<<<<< HEAD68 76 //TODO proveri dali ima odgovorni i dokolku ima dali postojat vo bazata 69 77 @Transactional 70 public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price, int capacity,78 public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price, 71 79 String location, int from, int to, String color, 72 List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List< Vraboten> odgovorniLica) {80 List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Integer> odgovorniLica) { 73 81 74 for(ParkingSpace space:parkingSpaces){ 75 System.out.println(space); 76 } 77 for(Vraboten v : odgovorniLica){ 78 System.out.println(v.toString()); 79 } 80 ======= 81 //TODO prati niza od objekti ParkingSpaces i prati objekt ParkingZoneLocation 82 @Transactional 83 public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price, int capacity, 84 String location, int from, int to, String color, 85 List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation) { 86 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939 87 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId)); 88 if (parkingZoneOpt.isPresent()) { 82 //TODO prati niza od objekti ParkingSpaces i prati objekt ParkingZoneLocation 83 89 84 ParkingZone parkingZoneNov = parkingZoneRepository.findByPzId(parkingZoneId); 90 if (pzName != null && pzName.length() > 1 && !Objects.equals(parkingZoneNov.getPzName(), pzName)) { 91 Optional<ParkingZone> parkingZoneOpt1 = Optional.ofNullable(parkingZoneRepository.findByPzName(pzName)); 92 if (parkingZoneOpt1.isPresent()) { 93 throw new IllegalStateException("There is already a ParkingZone with the same name"); 85 if (parkingZoneNov!=null) { 86 if (pzName != null && pzName.length() > 1) { ; 87 if (parkingZoneNov.getPzName().equals(pzName)&&parkingZoneNov.getId()!=parkingZoneId) { 88 throw new IllegalStateException("There is already a ParkingZone with the same name"); 89 } 90 91 parkingZoneNov.setPzName(pzName); 94 92 } 95 93 96 parkingZoneNov.setPzName(pzName); 94 if (price != 0 && !Objects.equals(parkingZoneNov.getPrice(), price)) { 95 parkingZoneNov.setPrice(price); 96 } 97 98 if (location != null && location.length() > 0 && !Objects.equals(parkingZoneNov.getAddress(), location)) { 99 parkingZoneNov.setAddress(location); 100 } 101 102 if (from != 0 && !Objects.equals(parkingZoneNov.getFrom(), from)) { 103 parkingZoneNov.setFrom(from); 104 } 105 106 if (to != 0 && !Objects.equals(parkingZoneNov.getTo(), to)) { 107 parkingZoneNov.setTo(to); 108 } 109 110 if (color != null && color.length() > 0 && !Objects.equals(parkingZoneNov.getColor(), color)) { 111 parkingZoneNov.setColor(color); 112 } 113 114 if (parkingZoneLocation != null) { 115 parkingZoneNov.setParkingZoneLocation(parkingZoneLocation); 116 } 117 118 if (!parkingSpaces.isEmpty()) { 119 ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId); 120 // for(ParkingSpace space :parkingZone.getParkingSpaces()){ 121 // if(!parkingSpaces.contains(space)){ 122 // for(ParkingSession session: parkingSessionRepository.findByParkingZonePzName(pzName)){ 123 // if(session.getParkingSpace().getPsId()==space.getPsId()) 124 // throw new IllegalStateException("Vlegov vo iffot"); 125 // } 126 // } 127 // } 128 //TODO: treba da se opravi 129 parkingZone.setParkingSpaces(null); 130 List<ParkingSpace> spacesToAdd = new ArrayList<>(parkingSpaces); 131 parkingZone.setParkingSpaces(spacesToAdd); 132 } 133 if (!odgovorniLica.isEmpty()) { 134 ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId); 135 for (Integer vrabotenId : odgovorniLica) { 136 Vraboten vrabotenToAdd = vrabotenRepository.findByVrabotenId(vrabotenId); 137 if(vrabotenToAdd!=null) 138 vrabotenToAdd.getParkingZones().add(parkingZone); 139 } 140 } 141 142 143 return parkingZoneNov; 144 } else { 145 throw new IllegalStateException("There ParkingZone does not exist"); 97 146 } 147 } 98 148 99 if (price != 0 && !Objects.equals(parkingZoneNov.getPrice(), price)) { 100 parkingZoneNov.setPrice(price); 149 150 @Transactional 151 public Optional<ParkingZone> deleteParkingZone ( int parkingZoneId){ 152 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId)); 153 if (parkingZoneOpt.isPresent()) { 154 parkingZoneRepository.deleteByPzId(parkingZoneId); 155 } else { 156 throw new IllegalStateException("ParkingZone doesn't exist, therefore can't be deleted"); 101 157 } 102 103 if (capacity != 0 && !Objects.equals(parkingZoneNov.getCapacity(), capacity)) { 104 parkingZoneNov.setCapacity(capacity); 105 } 106 107 if (location != null && location.length() > 0 && !Objects.equals(parkingZoneNov.getLocation(), location)) { 108 parkingZoneNov.setLocation(location); 109 } 110 111 if (from != 0 && !Objects.equals(parkingZoneNov.getFrom(), from)) { 112 parkingZoneNov.setFrom(from); 113 } 114 115 if (to != 0 && !Objects.equals(parkingZoneNov.getTo(), to)) { 116 parkingZoneNov.setTo(to); 117 } 118 119 if (color != null && color.length() > 0 && !Objects.equals(parkingZoneNov.getColor(), color)) { 120 parkingZoneNov.setColor(color); 121 } 122 123 if(parkingZoneLocation!=null){ 124 parkingZoneNov.setParkingZoneLocation(parkingZoneLocation); 125 } 126 127 if(!parkingSpaces.isEmpty()){ 128 //TODO kreiraj lista od parkingSpaces, ni gi prakja false isHandicaped i isTaken 129 parkingZoneNov.setParkingSpaces(parkingSpaces); 130 } 131 <<<<<<< HEAD 132 if(!odgovorniLica.isEmpty()){ 133 134 parkingZoneNov.setOdgovorniLica(odgovorniLica); 135 } 136 ======= 137 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939 138 139 return parkingZoneNov; 140 } else { 141 throw new IllegalStateException("There ParkingZone does not exist"); 158 return parkingZoneOpt; 142 159 } 143 160 } 144 161 145 @Transactional146 public Optional<ParkingZone> deleteParkingZone(int parkingZoneId) {147 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId));148 if (parkingZoneOpt.isPresent()) {149 parkingZoneRepository.deleteByPzId(parkingZoneId);150 } else {151 throw new IllegalStateException("ParkingZone doesn't exist, therefore can't be deleted");152 }153 return parkingZoneOpt;154 }155 } -
sources/app/src/main/java/parkup/services/VrabotenService.java
r8588fcb r9ff45d6 3 3 import java.time.LocalDateTime; 4 4 import java.util.*; 5 import java.util.stream.Collectors; 5 6 import javax.transaction.Transactional; 6 7 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.data.jpa.repository.Modifying;8 8 import org.springframework.security.core.userdetails.UserDetails; 9 9 import org.springframework.security.core.userdetails.UserDetailsService; … … 13 13 import parkup.configs.token.ConfirmationTokenW; 14 14 import parkup.configs.token.ConfirmationTokenService; 15 import parkup.data.enumarations.EmployeeStatus; 16 import parkup.entities.ParkingZone; 15 17 import parkup.entities.Vraboten; 18 import parkup.repositories.ParkingZoneRepository; 16 19 import parkup.repositories.VrabotenRepository; 17 20 import parkup.data.VrabotenDemo; … … 20 23 public class VrabotenService implements UserDetailsService { 21 24 private final VrabotenRepository vrabotenRepository; 25 private final ParkingZoneRepository parkingZoneRepository; 22 26 private final BCryptPasswordEncoder bCryptPasswordEncoder; 23 27 private final ConfirmationTokenService confirmationTokenService; 24 28 25 29 @Autowired 26 public VrabotenService(VrabotenRepository vrabotenRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService) {30 public VrabotenService(VrabotenRepository vrabotenRepository, ParkingZoneRepository parkingZoneRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService) { 27 31 this.vrabotenRepository = vrabotenRepository; 32 this.parkingZoneRepository = parkingZoneRepository; 28 33 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 29 34 this.confirmationTokenService = confirmationTokenService; … … 43 48 List<VrabotenDemo> vrabotenDemos = new ArrayList<>(); 44 49 for (Vraboten v : vraboteni){ 45 VrabotenDemo vd = new VrabotenDemo(v.get FirstName(), v.getLastName(), v.getEmail());50 VrabotenDemo vd = new VrabotenDemo(v.getVrabotenId(),v.getFirstName(), v.getLastName(), v.getEmail()); 46 51 vrabotenDemos.add(vd); 47 52 } … … 49 54 } 50 55 51 public Optional<Vraboten> addVraboten(Vraboten vraboten) { 52 Optional<Vraboten> vrabotenOpt = this.vrabotenRepository.findVrabotenByEmail(vraboten.getEmail()); 53 if (vrabotenOpt.isPresent()) { 54 throw new IllegalStateException("Email already taken, try adding a vraboten with a different valid email address"); 56 public Optional<Vraboten> addVraboten(String password,String confirmPass,boolean locked, String firstName, String lastName, String mobile, String email, EmployeeStatus status,List<String> parkingZones) { 57 Optional<Vraboten> vrabotenOpt = this.vrabotenRepository.findVrabotenByEmail(email); 58 if (vrabotenOpt.isPresent()){ 59 throw new IllegalArgumentException("User with that mail already exists"); 60 } 61 Vraboten vrabotenToAdd=new Vraboten(); 62 if (email != null && email.length() > 1 && email.contains("@") ) { 63 vrabotenToAdd.setEmail(email); 55 64 } else { 56 if (vraboten.getEmail() != null && vraboten.getEmail().length() > 1 && vraboten.getEmail().contains("@")) { 57 //System.out.println(vraboten); 58 this.vrabotenRepository.save(vraboten); 59 } 60 else{ 61 throw new IllegalStateException("email not valid"); 62 } 63 } 64 return vrabotenOpt; 65 throw new IllegalStateException("email not valid"); 66 } 67 if(password.equals(confirmPass)){ 68 vrabotenToAdd.setPassword(bCryptPasswordEncoder.encode(password)); 69 } 70 vrabotenToAdd.setLocked(locked); 71 72 if (firstName != null && firstName.length() > 1) { 73 vrabotenToAdd.setFirstName(firstName); 74 } 75 76 if (lastName != null && lastName.length() > 1 ) { 77 vrabotenToAdd.setLastName(lastName); 78 } 79 80 if (mobile != null && mobile.length() > 0 ) { 81 vrabotenToAdd.setMobile(mobile); 82 } 83 84 vrabotenToAdd.setStatus(status); 85 86 if(parkingZones!=null){ 87 List<ParkingZone> parkingZonesAvailable =parkingZoneRepository.findAll(); 88 List<ParkingZone> zonesToAdd= new ArrayList<>(); 89 vrabotenToAdd.setParkingZones(null); 90 for(String pzName:parkingZones){ 91 for(ParkingZone pz :parkingZonesAvailable){ 92 if(pzName.equals(pz.getPzName())) { 93 zonesToAdd.add(pz); 94 // pz.getOdgovorniLica().add(vrabotenRepository.findByVrabotenId(vrabotenId)); 95 } 96 } 97 } 98 vrabotenToAdd.setParkingZones(zonesToAdd); 99 } 100 String token = UUID.randomUUID().toString(); 101 ConfirmationTokenW confirmationTokenW = new ConfirmationTokenW( 102 token, 103 LocalDateTime.now(), 104 LocalDateTime.now().plusMinutes(15), 105 vrabotenToAdd 106 ); 107 108 confirmationTokenService.saveConfirmationTokenW(confirmationTokenW); 109 110 return Optional.of(vrabotenToAdd); 111 // Optional<Vraboten> vrabotenOpt = this.vrabotenRepository.findVrabotenByEmail(vraboten.getEmail()); 112 // if (vrabotenOpt.isPresent()) { 113 // throw new IllegalStateException("Email already taken, try adding a vraboten with a different valid email address"); 114 // } else { 115 // if (vraboten.getEmail() != null && vraboten.getEmail().length() > 1 && vraboten.getEmail().contains("@")) { 116 // //System.out.println(vraboten); 117 // this.vrabotenRepository.save(vraboten); 118 // } 119 // else{ 120 // throw new IllegalStateException("email not valid"); 121 // } 122 // } 123 // return vrabotenOpt; 65 124 } 66 125 67 126 @Transactional 68 public Vraboten updateVraboten(int vrabotenId, String firstName, String lastName, String mobile, String email, String status) {127 public Vraboten updateVraboten(int vrabotenId,String password,String confirmPass,boolean locked, String firstName, String lastName, String mobile, String email, EmployeeStatus status,List<String> parkingZones) { 69 128 Optional<Vraboten> vrabotenOpt = Optional.ofNullable(this.vrabotenRepository.findByVrabotenId(vrabotenId)); 70 129 if (vrabotenOpt.isPresent()) { 71 Vraboten vrabotenNov = this.vrabotenRepository.findByVrabotenId(vrabotenId); 72 if (email != null && email.length() > 1 && email.contains("@") && !Objects.equals(vrabotenNov.getEmail(), email)) { 73 Optional<Vraboten> userOpt1 = this.vrabotenRepository.findVrabotenByEmail(email); 74 if (userOpt1.isPresent()) { 130 131 if (email != null && email.length() > 1 && email.contains("@") ) { 132 List<String> emails = vrabotenRepository.findAll().stream().map(Vraboten::getEmail).collect(Collectors.toList()); 133 for(String mailToCheck :emails) 134 if (email.equals(mailToCheck)&&vrabotenOpt.get().getVrabotenId()!=vrabotenId) { 75 135 throw new IllegalStateException("email taken"); 76 136 } 77 vraboten Nov.setEmail(email);137 vrabotenOpt.get().setEmail(email); 78 138 } else { 79 139 throw new IllegalStateException("email not valid"); 80 140 } 81 82 if (firstName != null && firstName.length() > 1 && !Objects.equals(vrabotenNov.getFirstName(), firstName)) { 83 vrabotenNov.setFirstName(firstName); 84 } 85 86 if (lastName != null && lastName.length() > 1 && !Objects.equals(vrabotenNov.getLastName(), lastName)) { 87 vrabotenNov.setLastName(lastName); 88 } 89 90 if (mobile != null && mobile.length() > 0 && !Objects.equals(vrabotenNov.getMobile(), mobile)) { 91 vrabotenNov.setMobile(mobile); 92 } 93 94 if (mobile != null && status.length() > 0 && !Objects.equals(vrabotenNov.getStatus(), status)) { 95 if(status.equals("raboti") || status.equals("ne raboti") || status.equals("na odmor") || status.equals("na boleduvanje")){ 96 vrabotenNov.setStatus(status); 97 }else{ 98 throw new IllegalStateException("Please enter one of the following statuses: 'raboti', 'ne raboti', 'na odmor', 'na boleduvanje'"); 141 if(password.equals(confirmPass)){ 142 vrabotenOpt.get().setPassword(bCryptPasswordEncoder.encode(password)); 143 } 144 vrabotenOpt.get().setLocked(locked); 145 146 if (firstName != null && firstName.length() > 1 && !Objects.equals(vrabotenOpt.get().getFirstName(), firstName)) { 147 vrabotenOpt.get().setFirstName(firstName); 148 } 149 150 if (lastName != null && lastName.length() > 1 && !Objects.equals(vrabotenOpt.get().getLastName(), lastName)) { 151 vrabotenOpt.get().setLastName(lastName); 152 } 153 154 if (mobile != null && mobile.length() > 0 && !Objects.equals(vrabotenOpt.get().getMobile(), mobile)) { 155 vrabotenOpt.get().setMobile(mobile); 156 } 157 158 // if (status != null && status.toString().length() > 0) { 159 // if(Arrays.stream(EmployeeStatus.values()).toList().contains(EmployeeStatus.valueOf(status))){ 160 vrabotenOpt.get().setStatus(status); 161 // }else{ 162 // throw new IllegalStateException("Please enter one of the following statuses: 'raboti', 'ne raboti', 'na odmor', 'na boleduvanje'"); 163 // } 164 // } 165 if(parkingZones!=null){ 166 List<ParkingZone> parkingZonesAvailable =parkingZoneRepository.findAll(); 167 List<ParkingZone> zonesToAdd= new ArrayList<>(); 168 vrabotenOpt.get().setParkingZones(null); 169 for(String pzName:parkingZones){ 170 for(ParkingZone pz :parkingZonesAvailable){ 171 if(pzName.equals(pz.getPzName())) { 172 zonesToAdd.add(pz); 173 // pz.getOdgovorniLica().add(vrabotenRepository.findByVrabotenId(vrabotenId)); 174 } 175 } 99 176 } 100 }101 102 return vraboten Nov;177 vrabotenOpt.get().setParkingZones(zonesToAdd); 178 } 179 return vrabotenOpt.get(); 103 180 } 104 181 else{ … … 107 184 }//za menjanje password da se implementira 108 185 109 @Modifying110 186 @Transactional 111 187 public Optional<Vraboten> deleteVraboten(int vrabotenId) { 112 188 Optional<Vraboten> vrabotenOpt = Optional.ofNullable(this.vrabotenRepository.findByVrabotenId(vrabotenId)); 113 189 if (vrabotenOpt.isPresent()) { 114 //TODO da povikamo metod od ConfirmationTokenService za brisenje na ConfirmationTokenW115 190 this.confirmationTokenService.deleteByVraboten_VrabotenId(vrabotenId); 116 191 this.vrabotenRepository.deleteByVrabotenId(vrabotenId); … … 129 204 throw new IllegalStateException("Vraboten doesn't exist, therefore his account can't be locked/unlocked"); 130 205 } 131 } //dali treba da stoi @Transactional gore nad funkcijata?206 } 132 207 133 208 @Override … … 176 251 } 177 252 253 // @Transactional 254 // public void setVrabotenStatus(int vrabotenId,String vrabotenStatus) { 255 // Vraboten vraboten = vrabotenRepository.findByVrabotenId(vrabotenId); 256 // if(vraboten!=null && value){ 257 // vraboten.setStatus(valuee); 258 // } 259 // else { 260 // throw new IllegalStateException(String.format("Vraboten with id %d does not exist.",vrabotenId)); 261 // } 262 // } 178 263 } -
sources/app/src/main/resources/application.properties
r8588fcb r9ff45d6 2 2 spring.datasource.username=postgres 3 3 spring.datasource.password=1234 4 spring.jpa.hibernate.ddl-auto= create-drop4 spring.jpa.hibernate.ddl-auto=update 5 5 spring.jpa.show-sql=true 6 6 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
Note:
See TracChangeset
for help on using the changeset viewer.