Changeset 9dd526f for sources/app/src/main
- Timestamp:
- 02/02/22 14:15:35 (3 years ago)
- Branches:
- master
- Children:
- df4089c
- Parents:
- 9ff45d6
- Location:
- sources/app/src/main
- Files:
-
- 10 added
- 7 deleted
- 23 edited
- 7 moved
Legend:
- Unmodified
- Added
- Removed
-
sources/app/src/main/java/parkup/configs/RegistrationServiceRP.java
r9ff45d6 r9dd526f 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 4 import org.springframework.stereotype.Service; 5 import parkup.configs.email.EmailSe nder;5 import parkup.configs.email.EmailService; 6 6 import parkup.configs.email.EmailValidator; 7 import parkup.configs.email.Mail; 7 8 import parkup.configs.token.ConfirmationTokenRP; 8 9 import parkup.configs.token.ConfirmationTokenService; 9 import parkup.entities.Regist riranParkirac;10 import parkup.services.Regist riranParkiracService;10 import parkup.entities.RegisteredUser; 11 import parkup.services.RegisteredUserService; 11 12 12 13 import javax.transaction.Transactional; … … 15 16 @Service 16 17 public class RegistrationServiceRP { 17 private final Regist riranParkiracService registriranParkiracService;18 private final RegisteredUserService registeredUserService; 18 19 private final EmailValidator emailValidator; 19 20 private final ConfirmationTokenService confirmationTokenService; 20 private final EmailSe nder emailSender;21 private final EmailService emailService; 21 22 22 23 @Autowired 23 public RegistrationServiceRP(Regist riranParkiracService registriranParkiracService, EmailValidator emailValidator,24 ConfirmationTokenService confirmationTokenService, EmailSe nder emailSender) {25 this.regist riranParkiracService = registriranParkiracService;24 public RegistrationServiceRP(RegisteredUserService registeredUserService, EmailValidator emailValidator, 25 ConfirmationTokenService confirmationTokenService, EmailService emailService) { 26 this.registeredUserService = registeredUserService; 26 27 this.emailValidator = emailValidator; 27 28 this.confirmationTokenService = confirmationTokenService; 28 this.emailSe nder = emailSender;29 this.emailService = emailService; 29 30 } 30 31 31 32 public String register(RegistrationRequest request) { 33 if (request.getEmail() == null || request.getEmail().isEmpty()) 34 throw new IllegalArgumentException("Missing email"); 32 35 boolean isValidEmail = emailValidator. 33 36 test(request.getEmail()); … … 37 40 } 38 41 39 String token = regist riranParkiracService.signUpRegistriranParkirac(40 new Regist riranParkirac(42 String token = registeredUserService.signUpRegistriranParkirac( 43 new RegisteredUser( 41 44 request.getFirstName(), 42 45 request.getLastName(), … … 48 51 49 52 String link = "http://localhost:8080/registriranParkirac/registration/confirm?token=" + token; 50 emailSender.send( 51 request.getEmail(), 52 buildEmail(request.getFirstName(), link)); 53 53 Mail mail = new Mail(); 54 mail.setMailTo(request.getEmail()); 55 mail.setMailFrom("noreply_explore_buddy@gmail.com"); 56 mail.setMailSubject("Account confirmation"); 57 mail.setMailContent(buildEmail(request.getEmail(), link)); 58 emailService.sendEmail(mail); 54 59 return token; 55 60 } … … 74 79 confirmationTokenService.setConfirmedAtRP(token); 75 80 76 regist riranParkiracService.enableRegistriranParkirac(confirmationTokenRP.getRegistriranParkirac().getEmail());81 registeredUserService.enableRegistriranParkirac(confirmationTokenRP.getRegistriranParkirac().getEmail()); 77 82 return "confirmed"; 78 83 } -
sources/app/src/main/java/parkup/configs/email/EmailService.java
r9ff45d6 r9dd526f 1 1 package parkup.configs.email; 2 2 3 import org.slf4j.Logger; 4 import org.slf4j.LoggerFactory; 3 import org.springframework.beans.factory.annotation.Autowired; 5 4 import org.springframework.mail.javamail.JavaMailSender; 6 5 import org.springframework.mail.javamail.MimeMessageHelper; 7 import org.springframework.scheduling.annotation.Async;8 6 import org.springframework.stereotype.Service; 9 7 10 8 import javax.mail.MessagingException; 9 import javax.mail.internet.InternetAddress; 11 10 import javax.mail.internet.MimeMessage; 11 import java.io.UnsupportedEncodingException; 12 12 13 @Service 14 public class EmailService implements EmailSender{13 @Service("mailService") 14 public class EmailService implements MailService { 15 15 16 private final static Logger LOGGER = LoggerFactory.getLogger(EmailService.class);17 private finalJavaMailSender mailSender;16 @Autowired 17 JavaMailSender mailSender; 18 18 19 public EmailService(JavaMailSender mailSender) { 20 this.mailSender = mailSender; 19 public void sendEmail(Mail mail) { 20 MimeMessage mimeMessage = mailSender.createMimeMessage(); 21 22 try { 23 24 MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); 25 26 mimeMessageHelper.setSubject(mail.getMailSubject()); 27 mimeMessageHelper.setFrom(new InternetAddress(mail.getMailFrom(), "parkUp.com")); 28 mimeMessageHelper.setTo(mail.getMailTo()); 29 mimeMessageHelper.setText(mail.getMailContent(), true); 30 31 mailSender.send(mimeMessageHelper.getMimeMessage()); 32 33 } catch (MessagingException | UnsupportedEncodingException e) { 34 e.printStackTrace(); 35 } 21 36 } 22 37 23 @Override24 @Async25 public void send(String to, String email) {26 try {27 MimeMessage mimeMessage = mailSender.createMimeMessage();28 MimeMessageHelper helper =29 new MimeMessageHelper(mimeMessage, "utf-8");30 helper.setText(email, true);31 helper.setTo(to);32 helper.setSubject("Confirm your email");33 helper.setFrom("parkup@gmail.com");34 mailSender.send(mimeMessage);35 } catch (MessagingException e) {36 LOGGER.error("failed to send email", e);37 throw new IllegalStateException("failed to send email");38 }39 }40 38 } 41 -
sources/app/src/main/java/parkup/configs/email/EmailValidator.java
r9ff45d6 r9dd526f 1 1 package parkup.configs.email; 2 2 3 3 4 import org.springframework.stereotype.Service; 4 5 5 6 import java.util.function.Predicate; 7 import java.util.regex.Pattern; 6 8 7 9 @Service … … 9 11 @Override 10 12 public boolean test(String s) { 11 //todo12 return true;13 String regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$"; 14 return Pattern.compile(regexPattern).matcher(s).matches(); 13 15 } 14 16 } -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRP.java
r9ff45d6 r9dd526f 1 1 package parkup.configs.token; 2 2 3 import parkup.entities.Regist riranParkirac;3 import parkup.entities.RegisteredUser; 4 4 5 5 import javax.persistence.*; … … 37 37 @JoinColumn(nullable = false, name = "registriranParkirac_id") 38 38 //many confirmation tokens to one registriranParkirac 39 private Regist riranParkirac registriranParkirac;39 private RegisteredUser registeredUser; 40 40 41 41 public ConfirmationTokenRP() {} 42 42 43 public ConfirmationTokenRP(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, Regist riranParkirac registriranParkirac) {43 public ConfirmationTokenRP(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegisteredUser registeredUser) { 44 44 this.id = id; 45 45 this.token = token; 46 46 this.createdAt = createdAt; 47 47 this.expiresAt = expiresAt; 48 this.regist riranParkirac = registriranParkirac;48 this.registeredUser = registeredUser; 49 49 } 50 50 51 public ConfirmationTokenRP(String token, LocalDateTime createdAt, LocalDateTime expiresAt, Regist riranParkirac registriranParkirac) {51 public ConfirmationTokenRP(String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegisteredUser registeredUser) { 52 52 this.token = token; 53 53 this.createdAt = createdAt; 54 54 this.expiresAt = expiresAt; 55 this.regist riranParkirac = registriranParkirac;55 this.registeredUser = registeredUser; 56 56 } 57 57 … … 96 96 } 97 97 98 public Regist riranParkiracgetRegistriranParkirac() {99 return regist riranParkirac;98 public RegisteredUser getRegistriranParkirac() { 99 return registeredUser; 100 100 } 101 101 102 public void setRegistriranParkirac(Regist riranParkirac registriranParkirac) {103 this.regist riranParkirac = registriranParkirac;102 public void setRegistriranParkirac(RegisteredUser registeredUser) { 103 this.registeredUser = registeredUser; 104 104 } 105 105 } -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryRP.java
r9ff45d6 r9dd526f 15 15 Optional<ConfirmationTokenRP> findByToken(String token); 16 16 17 void deleteByRegist riranParkirac_RegParkId(int regParkId);17 void deleteByRegisteredUser_RegParkId(int regParkId); 18 18 19 19 @Transactional -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java
r9ff45d6 r9dd526f 10 10 11 11 private final ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP; 12 private final ConfirmationTokenRepositoryW confirmationTokenRepositoryW;13 12 14 13 15 public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP , ConfirmationTokenRepositoryW confirmationTokenRepositoryW, parkup.configs.token.ConfirmationTokenRepositoryW confirmationTokenRepositoryW1) {14 public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP) { 16 15 this.confirmationTokenRepositoryRP = confirmationTokenRepositoryRP; 17 this.confirmationTokenRepositoryW = confirmationTokenRepositoryW1;18 16 } 19 17 public void saveConfirmationTokenRP(ConfirmationTokenRP token){ … … 21 19 } 22 20 23 public void saveConfirmationTokenW(ConfirmationTokenW token){24 confirmationTokenRepositoryW.save(token);}25 21 26 22 public Optional<ConfirmationTokenRP> getTokenRP(String token) { 27 23 return confirmationTokenRepositoryRP.findByToken(token); 28 24 } 29 public Optional<ConfirmationTokenW> getTokenW(String token){30 return confirmationTokenRepositoryW.findByToken(token);31 }32 25 33 public void deleteByVraboten_VrabotenId(int vraboten_id){ 34 confirmationTokenRepositoryW.deleteByVraboten_VrabotenId(vraboten_id); 35 } 36 37 public void deleteByRegistriranParkirac_RegParkId(int regParkId){ 38 confirmationTokenRepositoryRP.deleteByRegistriranParkirac_RegParkId(regParkId); 26 public void deleteByRegisteredUser_RegParkId(int regParkId){ 27 confirmationTokenRepositoryRP.deleteByRegisteredUser_RegParkId(regParkId); 39 28 } 40 29 … … 42 31 return confirmationTokenRepositoryRP.updateConfirmedAt(token, LocalDateTime.now()); 43 32 } 44 public int setConfirmedAtW(String token){45 return confirmationTokenRepositoryW.updateConfirmedAt(token,LocalDateTime.now());46 }47 33 } -
sources/app/src/main/java/parkup/configs/webConfigs/WebSecurityConfig.java
r9ff45d6 r9dd526f 3 3 import org.springframework.context.annotation.Bean; 4 4 import org.springframework.context.annotation.Configuration; 5 import org.springframework.security.authentication. dao.DaoAuthenticationProvider;5 import org.springframework.security.authentication.AuthenticationManager; 6 6 import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 7 7 import org.springframework.security.config.annotation.web.builders.HttpSecurity; … … 9 9 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; 10 10 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 11 import parkup.services.RegistriranParkiracService; 12 import parkup.services.VrabotenService; 11 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; 12 import org.springframework.web.cors.CorsConfiguration; 13 import parkup.configs.CustomAuthenticationFilter; 14 import parkup.configs.CustomAuthorizationFilter; 15 import parkup.services.AdministratorService; 16 import parkup.services.RegisteredUserService; 17 import parkup.services.WorkerService; 18 19 import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS; 13 20 14 21 @EnableWebSecurity 15 22 @Configuration 16 23 public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 17 private final VrabotenService vrabotenService;24 private final WorkerService workerService; 18 25 private final BCryptPasswordEncoder bCryptPasswordEncoder; 19 private final RegistriranParkiracService registriranParkiracService; 26 private final RegisteredUserService registeredUserService; 27 private final AdministratorService administratorService; 20 28 21 public WebSecurityConfig( VrabotenService vrabotenService, BCryptPasswordEncoder bCryptPasswordEncoder, RegistriranParkiracService registriranParkiracService) {22 this. vrabotenService = vrabotenService;29 public WebSecurityConfig(WorkerService workerService, BCryptPasswordEncoder bCryptPasswordEncoder, RegisteredUserService registeredUserService, AdministratorService administratorService) { 30 this.workerService = workerService; 23 31 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 24 this.registriranParkiracService = registriranParkiracService; 32 this.registeredUserService = registeredUserService; 33 this.administratorService = administratorService; 34 } 35 36 @Override 37 protected void configure(AuthenticationManagerBuilder auth) throws Exception { 38 auth.userDetailsService(registeredUserService).passwordEncoder(bCryptPasswordEncoder); 39 auth.userDetailsService(workerService).passwordEncoder(bCryptPasswordEncoder); 40 auth.userDetailsService(administratorService).passwordEncoder(bCryptPasswordEncoder); 25 41 } 26 42 27 43 @Override 28 44 protected void configure(HttpSecurity http) throws Exception { 29 http 30 .csrf().disable() 31 .authorizeRequests() 32 .antMatchers("/registriranParkirac/registration/**") 33 .permitAll() 34 .anyRequest() 35 .authenticated().and().formLogin();//ruta na viktor 36 } 37 38 @Override 39 protected void configure(AuthenticationManagerBuilder auth) throws Exception { 40 auth.authenticationProvider(daoAuthenticationProviderW()); 41 auth.authenticationProvider(daoAuthenticationProviderRP()); 45 CustomAuthenticationFilter customAuthenticationFilter = new CustomAuthenticationFilter(authenticationManagerBean()); 46 customAuthenticationFilter.setFilterProcessesUrl("/api/login"); 47 http.csrf().disable(); 48 http.cors().configurationSource(request -> new CorsConfiguration().applyPermitDefaultValues()); 49 http.sessionManagement().sessionCreationPolicy(STATELESS); 50 http.authorizeRequests().antMatchers("/**").permitAll(); 51 // http.authorizeRequests().antMatchers("/user/registration/**", "/home/markers","/home/getLocation/**","/api/login/**","/home").permitAll(); 52 // http.authorizeRequests().antMatchers( "/user/setFavourite/**","user/favourites").hasAuthority("ROLE_USER"); 53 // http.authorizeRequests().antMatchers( "/home/**").hasAuthority("ROLE_ADMIN"); 54 // http.authorizeRequests().anyRequest().authenticated(); 55 http.addFilter(customAuthenticationFilter); 56 http.addFilterBefore(new CustomAuthorizationFilter(), UsernamePasswordAuthenticationFilter.class); 42 57 } 43 58 44 59 @Bean 45 public DaoAuthenticationProvider daoAuthenticationProviderW() { 46 DaoAuthenticationProvider provider = new DaoAuthenticationProvider(); 47 provider.setPasswordEncoder(bCryptPasswordEncoder); 48 provider.setUserDetailsService(vrabotenService); 49 return provider; 60 @Override 61 public AuthenticationManager authenticationManagerBean() throws Exception { 62 return super.authenticationManagerBean(); 50 63 } 51 64 52 @Bean53 public DaoAuthenticationProvider daoAuthenticationProviderRP(){54 DaoAuthenticationProvider provider = new DaoAuthenticationProvider();55 provider.setPasswordEncoder(bCryptPasswordEncoder);56 provider.setUserDetailsService(registriranParkiracService);57 return provider;58 }59 65 60 66 } -
sources/app/src/main/java/parkup/controllers/ParkingSessionController.java
r9ff45d6 r9dd526f 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 4 import org.springframework.web.bind.annotation.*; 5 import parkup.data.Tablicka;6 5 import parkup.entities.ParkingSession; 7 6 import parkup.services.ParkingSessionService; -
sources/app/src/main/java/parkup/controllers/ParkingZoneController.java
r9ff45d6 r9dd526f 53 53 return this.parkingZoneService.updateParkingZone(parkingZoneId, parkingZone.getPzName(), parkingZone.getPrice(), 54 54 parkingZone.getAddress(), parkingZone.getTime_from(), parkingZone.getTime_to(), parkingZone.getColor(), 55 parkingZone.getParkingSpaces(), parkingZone.getParkingZoneLocation(),parkingZone.get OdgovorniLica());55 parkingZone.getParkingSpaces(), parkingZone.getParkingZoneLocation(),parkingZone.getResponsibleWorkers()); 56 56 57 57 } -
sources/app/src/main/java/parkup/controllers/RegistriranParkiracController.java
r9ff45d6 r9dd526f 8 8 import parkup.configs.RegistrationRequest; 9 9 import parkup.configs.RegistrationServiceRP; 10 import parkup.entities.Regist riranParkirac;11 import parkup.services.Regist riranParkiracService;10 import parkup.entities.RegisteredUser; 11 import parkup.services.RegisteredUserService; 12 12 13 13 @RestController 14 14 public class RegistriranParkiracController { 15 private final Regist riranParkiracService registriranParkiracService;15 private final RegisteredUserService registeredUserService; 16 16 private final RegistrationServiceRP registrationServiceRP; 17 17 18 18 @Autowired 19 public RegistriranParkiracController(Regist riranParkiracService registriranParkiracService, RegistrationServiceRP registrationServiceRP) {20 this.regist riranParkiracService = registriranParkiracService;19 public RegistriranParkiracController(RegisteredUserService registeredUserService, RegistrationServiceRP registrationServiceRP) { 20 this.registeredUserService = registeredUserService; 21 21 this.registrationServiceRP = registrationServiceRP; 22 22 } 23 23 24 24 @GetMapping({"/registriranParkirac"}) 25 public List<Regist riranParkirac> getAllRegistriraniParkiraci() {26 return this.regist riranParkiracService.getRegPark();25 public List<RegisteredUser> getAllRegistriraniParkiraci() { 26 return this.registeredUserService.getRegPark(); 27 27 } 28 28 29 29 @GetMapping({"/registriranParkirac/{regParkId}"}) 30 public Regist riranParkiracgetRegistriranParkirac(@PathVariable int regParkId) {31 Regist riranParkirac regPark = this.registriranParkiracService.findById(regParkId);30 public RegisteredUser getRegistriranParkirac(@PathVariable int regParkId) { 31 RegisteredUser regPark = this.registeredUserService.findById(regParkId); 32 32 if (regPark != null) { 33 33 return regPark; … … 38 38 39 39 @PostMapping({"/registriranParkirac"}) 40 public Optional<Regist riranParkirac> addRegistriranParkirac(@RequestBody RegistriranParkiracregPark) {41 return this.regist riranParkiracService.addRegPark(regPark);40 public Optional<RegisteredUser> addRegistriranParkirac(@RequestBody RegisteredUser regPark) { 41 return this.registeredUserService.addRegPark(regPark); 42 42 } 43 43 44 44 @PutMapping({"/registriranParkirac/{regParkId}"}) 45 public Regist riranParkirac updateRegistriranParkirac(@PathVariable int regParkId, @RequestBody RegistriranParkiracregPark) {46 return this.regist riranParkiracService.updateRegPark(regParkId, regPark.getName(), regPark.getSurname(), regPark.getMobile(), regPark.getEmail(),regPark.getRegTablicki());45 public RegisteredUser updateRegistriranParkirac(@PathVariable int regParkId, @RequestBody RegisteredUser regPark) { 46 return this.registeredUserService.updateRegPark(regParkId, regPark.getName(), regPark.getSurname(), regPark.getMobile(), regPark.getEmail(),regPark.getPlates()); 47 47 } 48 48 49 49 @DeleteMapping({"/registriranParkirac/{regParkId}"}) 50 public Optional<Regist riranParkirac> deleteRegistriranParkirac(@PathVariable int regParkId) {51 return this.regist riranParkiracService.deleteRegPark(regParkId);50 public Optional<RegisteredUser> deleteRegistriranParkirac(@PathVariable int regParkId) { 51 return this.registeredUserService.deleteRegPark(regParkId); 52 52 } 53 53 -
sources/app/src/main/java/parkup/controllers/VrabotenController.java
r9ff45d6 r9dd526f 3 3 import java.util.List; 4 4 import java.util.Optional; 5 import java.util.stream.Collectors;6 5 7 6 import org.springframework.beans.factory.annotation.Autowired; 8 7 import org.springframework.web.bind.annotation.*; 9 import parkup.configs.RegistrationRequest;10 8 //import parkup.configs.RegistrationServiceW; 11 import parkup.data.AddUpdate Vraboten;12 import parkup.data. enumarations.EmployeeStatus;13 import parkup.entities. Vraboten;14 import parkup.services. VrabotenService;15 import parkup.data. VrabotenDemo;9 import parkup.data.AddUpdateWorker; 10 import parkup.data.WorkerDemoParkingZones; 11 import parkup.entities.Worker; 12 import parkup.services.WorkerService; 13 import parkup.data.WorkerDemo; 16 14 17 15 @RestController 18 16 public class VrabotenController { 19 private final VrabotenService vrabotenService;17 private final WorkerService workerService; 20 18 // private final RegistrationServiceW registrationServiceW; 21 19 22 20 @Autowired 23 public VrabotenController( VrabotenService vrabotenService) {24 this. vrabotenService = vrabotenService;21 public VrabotenController(WorkerService workerService) { 22 this.workerService = workerService; 25 23 } 26 24 27 25 @GetMapping({"/vraboten"}) 28 public List< Vraboten> getAllVraboten() {29 return this. vrabotenService.getVraboteni();26 public List<Worker> getAllVraboten() { 27 return this.workerService.getWorkers(); 30 28 } 31 29 32 30 @GetMapping({"/vraboten/{vrabotenId}"}) 33 public VrabotengetVraboten(@PathVariable int vrabotenId) {34 Vraboten vraboten = this.vrabotenService.findById(vrabotenId);31 public WorkerDemoParkingZones getVraboten(@PathVariable int vrabotenId) { 32 WorkerDemoParkingZones vraboten = this.workerService.findById(vrabotenId); 35 33 if (vraboten != null) { 36 34 return vraboten; … … 41 39 42 40 @GetMapping({"/vraboten/vrabotenDemo"}) 43 public List< VrabotenDemo> getVraboteniDemos(){44 return this. vrabotenService.getAllVraboteniDemos();41 public List<WorkerDemo> getVraboteniDemos(){ 42 return this.workerService.getAllVraboteniDemos(); 45 43 } 46 44 47 45 @PostMapping({"/vraboten"}) 48 public Optional< Vraboten> addVraboten(@RequestBody AddUpdateVrabotenvraboten) {49 return this. vrabotenService.addVraboten(vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(),46 public Optional<Worker> addVraboten(@RequestBody AddUpdateWorker vraboten) { 47 return this.workerService.addWorker(vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(), 50 48 vraboten.getMobileNumber(), vraboten.getEmail(), vraboten.getStatus(),vraboten.getParkingZones()); 51 49 } … … 53 51 @PutMapping({"/vraboten/lock/{vrabotenId}"}) 54 52 public void lockVraboten(@PathVariable int vrabotenId) { 55 this. vrabotenService.lockVrabotenAcc(vrabotenId);53 this.workerService.lockWorkerAcc(vrabotenId); 56 54 } 57 55 … … 62 60 63 61 @PutMapping({"/vraboten/{vrabotenId}"}) 64 public Vraboten updateVraboten(@PathVariable int vrabotenId, @RequestBody AddUpdateVrabotenvraboten) {65 return this. vrabotenService.updateVraboten(vrabotenId,vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(),62 public WorkerDemoParkingZones updateVraboten(@PathVariable int vrabotenId, @RequestBody AddUpdateWorker vraboten) { 63 return this.workerService.updateWorker(vrabotenId,vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(), 66 64 vraboten.getMobileNumber(), vraboten.getEmail(), vraboten.getStatus(),vraboten.getParkingZones()); 67 65 } 68 66 69 67 @DeleteMapping({"/vraboten/{vrabotenId}"}) 70 public Optional< Vraboten> deleteVraboten(@PathVariable int vrabotenId) {71 return this. vrabotenService.deleteVraboten(vrabotenId);68 public Optional<Worker> deleteVraboten(@PathVariable int vrabotenId) { 69 return this.workerService.deleteWorker(vrabotenId); 72 70 } 73 71 -
sources/app/src/main/java/parkup/data/AddUpdateWorker.java
r9ff45d6 r9dd526f 5 5 import java.util.List; 6 6 7 public class AddUpdate Vraboten{7 public class AddUpdateWorker { 8 8 String firstName; 9 9 String lastName; … … 16 16 boolean locked; 17 17 18 public AddUpdate Vraboten(String firstName, String lastName, String email, String password, String confirmPass, List<String> parkingZones, EmployeeStatus status, String mobileNumber, boolean locked) {18 public AddUpdateWorker(String firstName, String lastName, String email, String password, String confirmPass, List<String> parkingZones, EmployeeStatus status, String mobileNumber, boolean locked) { 19 19 this.firstName = firstName; 20 20 this.lastName = lastName; -
sources/app/src/main/java/parkup/data/Location.java
r9ff45d6 r9dd526f 19 19 private int locationId; 20 20 21 private float l ongitude;21 private float lng; 22 22 23 private float lat itude;23 private float lat; 24 24 25 25 public Location(){} 26 26 27 public Location(float l ongtitude, float latitude) {28 this.l ongitude = longtitude;29 this.lat itude = latitude;27 public Location(float lng, float lat) { 28 this.lng = lng; 29 this.lat = lat; 30 30 } 31 31 32 public float getL ongitude() {33 return l ongitude;32 public float getLng() { 33 return lng; 34 34 } 35 35 36 public void setL ongitude(float longitude) {37 this.l ongitude = longitude;36 public void setLng(float lng) { 37 this.lng = lng; 38 38 } 39 39 40 public float getLat itude() {41 return lat itude;40 public float getLat() { 41 return lat; 42 42 } 43 43 44 public void setLat itude(float latitude) {45 this.lat itude = latitude;44 public void setLat(float lat) { 45 this.lat = lat; 46 46 } 47 47 } -
sources/app/src/main/java/parkup/data/ParkingZoneAdminView.java
r9ff45d6 r9dd526f 15 15 private List<ParkingSpace> parkingSpaces; 16 16 private ParkingZoneLocation parkingZoneLocation; 17 private List<Integer> odgovorniLica;17 private List<Integer> responsibleWorkers; 18 18 19 public ParkingZoneAdminView(int pzId, String pzName, int price, int time_from, int time_to, String address, String color, List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Integer> odgovorniLica) {19 public ParkingZoneAdminView(int pzId, String pzName, int price, int time_from, int time_to, String address, String color, List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Integer> responsibleWorkers) { 20 20 this.pzId = pzId; 21 21 this.pzName = pzName; … … 27 27 this.parkingSpaces = parkingSpaces; 28 28 this.parkingZoneLocation = parkingZoneLocation; 29 this. odgovorniLica = odgovorniLica;29 this.responsibleWorkers = responsibleWorkers; 30 30 } 31 31 … … 104 104 } 105 105 106 public List<Integer> get OdgovorniLica() {107 return odgovorniLica;106 public List<Integer> getResponsibleWorkers() { 107 return responsibleWorkers; 108 108 } 109 109 110 public void set OdgovorniLica(List<Integer> odgovorniLica) {111 this. odgovorniLica = odgovorniLica;110 public void setResponsibleWorkers(List<Integer> responsibleWorkers) { 111 this.responsibleWorkers = responsibleWorkers; 112 112 } 113 113 } -
sources/app/src/main/java/parkup/data/ParkingZoneLocation.java
r9ff45d6 r9dd526f 24 24 25 25 @OneToMany(cascade = {CascadeType.ALL}) 26 private List<Location> teminja;26 private List<Location> coords; 27 27 28 public ParkingZoneLocation(int parkingZoneLocationId, Location centre, List<Location> teminja) {28 public ParkingZoneLocation(int parkingZoneLocationId, Location centre, List<Location> coords) { 29 29 this.parkingZoneLocationId = parkingZoneLocationId; 30 30 this.centre = centre; 31 this. teminja = teminja;31 this.coords = coords; 32 32 } 33 33 34 public ParkingZoneLocation(Location centre, List<Location> teminja) {34 public ParkingZoneLocation(Location centre, List<Location> coords) { 35 35 this.centre = centre; 36 this. teminja = teminja;36 this.coords = coords; 37 37 } 38 38 … … 47 47 } 48 48 49 public List<Location> get Teminja() {50 return teminja;49 public List<Location> getCoords() { 50 return coords; 51 51 } 52 52 53 public void set Teminja(List<Location> teminja) {54 this. teminja= teminja;53 public void setCoords(List<Location> teminja) { 54 this.coords = teminja; 55 55 } 56 56 } -
sources/app/src/main/java/parkup/data/WorkerDemo.java
r9ff45d6 r9dd526f 1 1 package parkup.data; 2 2 3 public class VrabotenDemo {4 private int vrabotenId;3 public class WorkerDemo { 4 private int workerId; 5 5 private String firstName; 6 6 private String lastName; 7 7 private String email; 8 8 9 public VrabotenDemo() {}9 public WorkerDemo() {} 10 10 11 public VrabotenDemo(int id,String firstName, String lastName, String email) {12 this. vrabotenId=id;11 public WorkerDemo(int id, String firstName, String lastName, String email) { 12 this.workerId =id; 13 13 this.firstName = firstName; 14 14 this.lastName = lastName; … … 16 16 } 17 17 18 public int get VrabotenId() {19 return vrabotenId;18 public int getWorkerId() { 19 return workerId; 20 20 } 21 21 22 public void set VrabotenId(int vrabotenId) {23 this. vrabotenId = vrabotenId;22 public void setWorkerId(int workerId) { 23 this.workerId = workerId; 24 24 } 25 25 -
sources/app/src/main/java/parkup/entities/Administrator.java
r9ff45d6 r9dd526f 4 4 import org.springframework.security.core.authority.SimpleGrantedAuthority; 5 5 import org.springframework.security.core.userdetails.UserDetails; 6 import parkup.data.enumarations.UserRole; 6 7 7 8 import javax.persistence.*; … … 41 42 private String mobile; 42 43 44 @Enumerated 43 45 @Column(name = "role") 44 private Stringrole;46 private UserRole role; 45 47 46 48 private boolean locked; … … 49 51 50 52 public Administrator(){ 51 this.role = "ROLE_ADMINISTRATOR"; 53 this.role = UserRole.ADMIN; 54 this.enabled=true; 52 55 } 53 56 … … 59 62 this.password = password; 60 63 this.mobile = mobile; 61 this.role = "ROLE_ADMINISTRATOR"; 64 this.enabled=true; 65 this.role = UserRole.ADMIN; 62 66 } 63 67 … … 68 72 this.password = password; 69 73 this.mobile = mobile; 70 this.role = "ROLE_ADMINISTRATOR"; 74 this.role = UserRole.ADMIN; 75 this.enabled=true; 71 76 } 72 77 … … 77 82 this.password = password; 78 83 this.mobile = mobile; 79 this.role = "ROLE_ADMINISTRATOR"; 84 this.role = UserRole.ADMIN; 85 this.enabled=true; 80 86 } 81 87 … … 124 130 } 125 131 126 public StringgetRole() {return role;}132 public UserRole getRole() {return role;} 127 133 128 public void setRole( Stringrole) {this.role = role;}134 public void setRole(UserRole role) {this.role = role;} 129 135 130 136 @Override 131 137 public Collection<? extends GrantedAuthority> getAuthorities() { 132 SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role );138 SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.getAuthority()); 133 139 return Collections.singleton(authority); 134 140 } -
sources/app/src/main/java/parkup/entities/Guest.java
r9ff45d6 r9dd526f 3 3 import javax.persistence.*; 4 4 5 import parkup.data.Tablicka; 5 import org.springframework.security.core.GrantedAuthority; 6 import org.springframework.security.core.authority.SimpleGrantedAuthority; 7 import org.springframework.security.core.userdetails.UserDetails; 8 import parkup.data.Plate; 9 import parkup.data.enumarations.UserRole; 10 11 import java.util.Collection; 12 import java.util.Collections; 6 13 7 14 @Entity 8 15 @Table(name = "guest") 9 public class Guest {16 public class Guest implements UserDetails { 10 17 @Id 11 18 @SequenceGenerator( … … 25 32 @OneToOne 26 33 @JoinColumn(name = "tablickaId", nullable = false) 27 private Tablicka tablicka;34 private Plate plate; 28 35 29 36 @Column(name = "email") … … 36 43 private ParkingSession session; 37 44 38 public Guest() {} 45 @Enumerated 46 private UserRole role; 39 47 40 public Guest(int guestId, Tablicka tablicka, String email, String mobile) { 48 49 public Guest() {this.role=UserRole.GUEST;} 50 51 public Guest(int guestId, Plate plate, String email, String mobile) { 41 52 this.guestId = guestId; 42 this. tablicka = tablicka;53 this.plate = plate; 43 54 this.email = email; 44 55 this.mobile = mobile; 56 this.role=UserRole.GUEST; 45 57 } 46 58 47 public Guest( Tablicka tablicka, String email, String mobile) {48 this. tablicka = tablicka;59 public Guest(Plate plate, String email, String mobile) { 60 this.plate = plate; 49 61 this.email = email; 50 62 this.mobile = mobile; 63 this.role=UserRole.GUEST; 51 64 } 52 65 … … 59 72 } 60 73 61 public TablickagetTablicka() {62 return tablicka;74 public Plate getTablicka() { 75 return plate; 63 76 } 64 77 65 public void setTablicka( Tablicka tablicka) {66 this. tablicka = tablicka;78 public void setTablicka(Plate plate) { 79 this.plate = plate; 67 80 } 68 81 … … 75 88 } 76 89 90 public ParkingSession getSession() { 91 return session; 92 } 93 94 public void setSession(ParkingSession session) { 95 this.session = session; 96 } 97 98 public UserRole getRole() { 99 return role; 100 } 101 102 public void setRole(UserRole role) { 103 this.role = role; 104 } 105 77 106 public String getMobile() { 78 107 return mobile; … … 82 111 this.mobile = mobile; 83 112 } 113 114 @Override 115 public Collection<? extends GrantedAuthority> getAuthorities() { 116 SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.name()); 117 return Collections.singleton(authority); 118 } 119 120 @Override 121 public String getPassword() { 122 return null; 123 } 124 125 @Override 126 public String getUsername() { 127 return Integer.toString(guestId); 128 } 129 130 @Override 131 public boolean isAccountNonExpired() { 132 return false; 133 } 134 135 @Override 136 public boolean isAccountNonLocked() { 137 return false; 138 } 139 140 @Override 141 public boolean isCredentialsNonExpired() { 142 return false; 143 } 144 145 @Override 146 public boolean isEnabled() { 147 return false; 148 } 84 149 } -
sources/app/src/main/java/parkup/entities/ParkingSession.java
r9ff45d6 r9dd526f 2 2 3 3 import org.springframework.format.annotation.DateTimeFormat; 4 import parkup.data. Tablicka;4 import parkup.data.Plate; 5 5 import parkup.data.enumarations.SessionStatus; 6 6 … … 34 34 35 35 @OneToOne(cascade = {CascadeType.ALL}) 36 @JoinColumn(name = " reg_tablicka", nullable = false)37 private Tablicka tablica;36 @JoinColumn(name = "plate", nullable = false) 37 private Plate plate; 38 38 39 39 @Column(name="session_status") … … 60 60 } 61 61 62 public ParkingSession( Tablicka tablica){62 public ParkingSession(Plate plate){ 63 63 this.timeStart= LocalDateTime.now(); 64 64 this.timeEnd=null; 65 this. tablica=tablica;65 this.plate=plate; 66 66 this.status=SessionStatus.STARTED_UNVERIFIED; 67 67 } … … 92 92 } 93 93 94 public Tablicka getTablica() {95 return tablica;94 public Plate getPlate() { 95 return plate; 96 96 } 97 97 98 public void set Tablica(Tablicka tablica) {99 this. tablica = tablica;98 public void setPlate(Plate plate) { 99 this.plate = plate; 100 100 } 101 101 -
sources/app/src/main/java/parkup/entities/ParkingZone.java
r9ff45d6 r9dd526f 43 43 44 44 @Transient 45 @Column(name = " zafateniMesta")45 @Column(name = "takenSpaces") 46 46 private int takenSpaces; 47 47 … … 52 52 // private List<Vraboten> odgovorniLica; 53 53 54 @OneToMany(cascade = {CascadeType. MERGE})54 @OneToMany(cascade = {CascadeType.ALL}) 55 55 private List<ParkingSpace> parkingSpaces; 56 56 -
sources/app/src/main/java/parkup/entities/RegisteredUser.java
r9ff45d6 r9dd526f 10 10 import org.springframework.security.core.authority.SimpleGrantedAuthority; 11 11 import org.springframework.security.core.userdetails.UserDetails; 12 import parkup.data.Tablicka; 12 import parkup.data.Plate; 13 import parkup.data.enumarations.UserRole; 13 14 14 15 @Entity 15 @Table(name = "regist riranParkirac")16 public class Regist riranParkiracimplements UserDetails {16 @Table(name = "registeredUser") 17 public class RegisteredUser implements UserDetails { 17 18 @Id 18 19 @SequenceGenerator( 19 name="regist riranParkirac_sequence_generator",20 sequenceName = "regist riranParkirac_sequence",20 name="registeredUser_sequence_generator", 21 sequenceName = "registeredUser_sequence", 21 22 allocationSize = 1, 22 23 initialValue = 300 … … 24 25 @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e 25 26 strategy = GenerationType.SEQUENCE, 26 generator = "regist riranParkirac_sequence_generator"27 generator = "registeredUser_sequence_generator" 27 28 ) 28 29 @Column(name = "regParkId") … … 39 40 40 41 @OneToMany(cascade ={CascadeType.ALL}) 41 @Column(name = "reg Tablicki")42 private List< Tablicka> regTablicki;42 @Column(name = "regPlates") 43 private List<Plate> plates; 43 44 44 45 @Column(name = "email") … … 48 49 private String mobile; 49 50 51 @Enumerated 50 52 @Column(name = "role") 51 private Stringrole;53 private UserRole role; 52 54 53 55 @OneToOne … … 58 60 private boolean enabled; 59 61 60 public Regist riranParkirac() {61 this. regTablicki = new ArrayList<Tablicka>();62 this.role = "ROLE_REGISTRIRAN_PARKIRAC";63 session=null; 64 } 65 66 public Regist riranParkirac(int regParkId, String name, String surname, String password, List<Tablicka> regTablicki, String email, String mobile) {62 public RegisteredUser() { 63 this.plates = new ArrayList<Plate>(); 64 this.role = UserRole.REG_USER; 65 session=null; 66 } 67 68 public RegisteredUser(int regParkId, String name, String surname, String password, List<Plate> plates, String email, String mobile) { 67 69 this.regParkId = regParkId; 68 70 this.name = name; 69 71 this.surname = surname; 70 72 this.password = password; 71 this. regTablicki = regTablicki;72 this.email = email; 73 this.mobile = mobile; 74 this.role = "ROLE_REGISTRIRAN_PARKIRAC";75 session=null; 76 } 77 78 public Regist riranParkirac(String name, String surname, String password, List<Tablicka> regTablicki, String email, String mobile) {79 this.name = name; 80 this.surname = surname; 81 this.password = password; 82 this. regTablicki = regTablicki;83 this.email = email; 84 this.mobile = mobile; 85 this.role = "ROLE_REGISTRIRAN_PARKIRAC";86 session=null; 87 } 88 89 public Regist riranParkirac(String name, String surname, String email, String password, String mobile) {90 this.name = name; 91 this.surname = surname; 92 this.password = password; 93 this.email = email; 94 this.mobile = mobile; 95 this.role = "ROLE_REGISTRIRAN_PARKIRAC";73 this.plates = plates; 74 this.email = email; 75 this.mobile = mobile; 76 this.role = UserRole.REG_USER; 77 session=null; 78 } 79 80 public RegisteredUser(String name, String surname, String password, List<Plate> plates, String email, String mobile) { 81 this.name = name; 82 this.surname = surname; 83 this.password = password; 84 this.plates = plates; 85 this.email = email; 86 this.mobile = mobile; 87 this.role = UserRole.REG_USER; 88 session=null; 89 } 90 91 public RegisteredUser(String name, String surname, String email, String password, String mobile) { 92 this.name = name; 93 this.surname = surname; 94 this.password = password; 95 this.email = email; 96 this.mobile = mobile; 97 this.role = UserRole.REG_USER; 96 98 session=null; 97 99 } … … 142 144 } 143 145 144 public List< Tablicka> getRegTablicki() {145 return regTablicki;146 } 147 148 public void set RegTablicki(List<Tablicka> regTablicki) {149 this. regTablicki = regTablicki;146 public List<Plate> getPlates() { 147 return plates; 148 } 149 150 public void setPlates(List<Plate> plates) { 151 this.plates = plates; 150 152 } 151 153 … … 166 168 } 167 169 168 public StringgetRole() {return role;}169 170 public void setRole( Stringrole) {this.role = role;}170 public UserRole getRole() {return role;} 171 172 public void setRole(UserRole role) {this.role = role;} 171 173 172 174 @Override 173 175 public Collection<? extends GrantedAuthority> getAuthorities() { 174 SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role );176 SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.getAuthority()); 175 177 return Collections.singleton(authority); 176 178 } -
sources/app/src/main/java/parkup/entities/Worker.java
r9ff45d6 r9dd526f 2 2 3 3 import org.springframework.security.core.GrantedAuthority; 4 import org.springframework.security.core.authority.SimpleGrantedAuthority; 4 5 import org.springframework.security.core.userdetails.UserDetails; 5 import parkup.data.VrabotenDemo;6 6 import parkup.data.enumarations.EmployeeStatus; 7 import parkup.data.enumarations.UserRole; 7 8 8 9 import javax.persistence.*; 9 10 import java.util.ArrayList; 10 11 import java.util.Collection; 12 import java.util.Collections; 11 13 import java.util.List; 12 14 13 15 @Entity 14 @Table(name = " vraboten")15 public class Vrabotenimplements UserDetails {16 @Table(name = "worker") 17 public class Worker implements UserDetails { 16 18 @Id 17 19 @SequenceGenerator( 18 name=" vraboten_sequence_generator",19 sequenceName = " vraboten_sequence",20 name="worker_sequence_generator", 21 sequenceName = "worker_sequence", 20 22 allocationSize = 1, 21 23 initialValue = 200 … … 23 25 @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e 24 26 strategy = GenerationType.SEQUENCE, 25 generator = " vraboten_sequence_generator"27 generator = "worker_sequence_generator" 26 28 ) 27 @Column(name = " vrabotenId")28 private int vrabotenId;29 @Column(name = "workerId") 30 private int workerId; 29 31 30 32 @Override … … 54 56 private String mobile; 55 57 58 @Enumerated 56 59 @Column(name = "role") 57 private Stringrole;60 private UserRole role; 58 61 59 62 @ManyToMany(cascade = {CascadeType.ALL}) … … 74 77 75 78 76 public Vraboten() {77 this.role = "ROLE_VRABOTEN";79 public Worker() { 80 this.role = UserRole.WORKER; 78 81 this.parkingZones = new ArrayList<ParkingZone>(); 79 82 this.enabled = true; … … 81 84 } 82 85 83 public Vraboten(int vrabotenId, String firstName, String lastName, String email, String password, String mobile, List<ParkingZone> parkingZones) {84 this. vrabotenId = vrabotenId;86 public Worker(int workerId, String firstName, String lastName, String email, String password, String mobile, List<ParkingZone> parkingZones) { 87 this.workerId = workerId; 85 88 this.firstName = firstName; 86 89 this.lastName = lastName; … … 89 92 this.mobile = mobile; 90 93 this.parkingZones = parkingZones; 91 this.role = "ROLE_VRABOTEN";94 this.role = UserRole.WORKER; 92 95 this.enabled = true; 93 96 this.status = EmployeeStatus.NOT_WORKING; 94 97 } 95 98 96 public Vraboten(String firstName, String lastName, String email, String password, String mobile, List<ParkingZone> parkingZones) {99 public Worker(String firstName, String lastName, String email, String password, String mobile, List<ParkingZone> parkingZones) { 97 100 this.firstName = firstName; 98 101 this.lastName = lastName; … … 101 104 this.mobile = mobile; 102 105 this.parkingZones = parkingZones; 103 this.role = "ROLE_VRABOTEN";106 this.role = UserRole.WORKER; 104 107 this.enabled = true; 105 108 this.status = EmployeeStatus.NOT_WORKING; 106 109 } 107 110 108 public Vraboten(String firstName, String lastName, String email, String password, String mobile) {111 public Worker(String firstName, String lastName, String email, String password, String mobile) { 109 112 this.firstName=firstName; 110 113 this.lastName=lastName; … … 113 116 this.mobile=mobile; 114 117 this.parkingZones=new ArrayList<>(); 115 this.role ="ROLE_VRABOTEN";118 this.role = UserRole.WORKER; 116 119 this.enabled=true; 117 120 this.status = EmployeeStatus.NOT_WORKING; 118 121 } 119 122 120 public int get VrabotenId() {121 return vrabotenId;122 } 123 124 public void set VrabotenId(int vrabotenId) {125 this. vrabotenId = vrabotenId;123 public int getWorkerId() { 124 return workerId; 125 } 126 127 public void setWorkerId(int workerId) { 128 this.workerId = workerId; 126 129 } 127 130 … … 152 155 @Override 153 156 public Collection<? extends GrantedAuthority> getAuthorities() { 154 return null; 157 SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.getAuthority()); 158 return Collections.singleton(authority); 155 159 } 156 160 … … 200 204 } 201 205 202 public StringgetRole() {return role;}203 204 public void setRole( Stringrole) {this.role = role;}206 public UserRole getRole() {return role;} 207 208 public void setRole(UserRole role) {this.role = role;} 205 209 206 210 public List<ParkingZone> getParkingZones() {return parkingZones;} -
sources/app/src/main/java/parkup/repositories/RegisteredUserRepository.java
r9ff45d6 r9dd526f 6 6 import org.springframework.data.jpa.repository.Query; 7 7 import org.springframework.stereotype.Repository; 8 import parkup.entities.Regist riranParkirac;8 import parkup.entities.RegisteredUser; 9 9 10 10 import javax.transaction.Transactional; 11 11 12 12 @Repository 13 public interface Regist riranParkiracRepository extends JpaRepository<RegistriranParkirac, Integer> {14 Regist riranParkiracfindByRegParkId(int regParkId);13 public interface RegisteredUserRepository extends JpaRepository<RegisteredUser, Integer> { 14 RegisteredUser findByRegParkId(int regParkId); 15 15 16 16 void deleteByRegParkId(int regParkId); 17 17 18 Optional<Regist riranParkirac> findRegistriranParkiracByEmail(String email);18 Optional<RegisteredUser> findRegisteredUserByEmail(String email); 19 19 20 20 @Transactional 21 21 @Modifying 22 @Query("UPDATE Regist riranParkiracrp " +22 @Query("UPDATE RegisteredUser rp " + 23 23 "SET rp.enabled = TRUE WHERE rp.email = ?1") 24 int enableRegist riranParkirac(String email);24 int enableRegisteredUser(String email); 25 25 } -
sources/app/src/main/java/parkup/repositories/WorkerRepository.java
r9ff45d6 r9dd526f 6 6 import org.springframework.data.jpa.repository.Query; 7 7 import org.springframework.stereotype.Repository; 8 import parkup.entities. Vraboten;8 import parkup.entities.Worker; 9 9 10 10 import javax.transaction.Transactional; 11 11 12 12 @Repository 13 public interface VrabotenRepository extends JpaRepository<Vraboten, Integer> {14 Vraboten findByVrabotenId(int id);13 public interface WorkerRepository extends JpaRepository<Worker, Integer> { 14 Worker findByWorkerId(int id); 15 15 16 void deleteBy VrabotenId(int id);16 void deleteByWorkerId(int id); 17 17 18 Optional< Vraboten> findVrabotenByEmail(String email);18 Optional<Worker> findWorkerByEmail(String email); 19 19 20 20 @Transactional 21 21 @Modifying 22 @Query("UPDATE Vraboten v" +23 "SET v.enabled = TRUE WHERE v.email = ?1")24 int enable Vraboten(String email);22 @Query("UPDATE Worker a " + 23 "SET a.enabled = TRUE WHERE a.email = ?1") 24 int enableWorker(String email); 25 25 } -
sources/app/src/main/java/parkup/services/AdministratorService.java
r9ff45d6 r9dd526f 21 21 private final AdministratorRepository administratorRepository; 22 22 private final BCryptPasswordEncoder bCryptPasswordEncoder; 23 private final ConfirmationTokenService confirmationTokenService; 24 private EmailValidator emailValidator; 23 25 24 26 25 @Autowired 27 public AdministratorService(AdministratorRepository administratorRepository, BCryptPasswordEncoder bCryptPasswordEncoder , ConfirmationTokenService confirmationTokenService) {26 public AdministratorService(AdministratorRepository administratorRepository, BCryptPasswordEncoder bCryptPasswordEncoder) { 28 27 this.administratorRepository = administratorRepository; 29 28 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 30 this.confirmationTokenService = confirmationTokenService;31 29 } 32 30 … … 46 44 } else { 47 45 if (administrator.getEmail() != null && administrator.getEmail().length() > 1 && administrator.getEmail().contains("@")) { 48 //System.out.println(regPark);46 administrator.setPassword(bCryptPasswordEncoder.encode(administrator.getPassword())); 49 47 this.administratorRepository.save(administrator); 50 48 } … … 108 106 } 109 107 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 = administratorRepository120 .findAdministratorByEmail(administrator.getEmail())121 .isPresent();122 if(administratorExists){123 // TODO check if attributes are the same and124 // TODO if email not confirmed send confirmation email125 126 throw new IllegalStateException("Email already taken");127 }128 129 String encodedPassword = bCryptPasswordEncoder130 .encode(administrator.getPassword());131 132 administrator.setPassword(encodedPassword);133 134 administratorRepository.save(administrator);135 136 // TODO: Send confirmation token137 138 String token = UUID.randomUUID().toString();139 140 141 // TODO: SEND EMAIL142 143 return token;144 }145 146 108 public int enableAdministrator(String email) { 147 109 return administratorRepository.enableAdministrator(email); -
sources/app/src/main/java/parkup/services/ParkingSessionService.java
r9ff45d6 r9dd526f 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 4 import org.springframework.stereotype.Service; 5 import parkup.data. Tablicka;5 import parkup.data.Plate; 6 6 import parkup.data.enumarations.SessionStatus; 7 7 import parkup.entities.ParkingSession; … … 11 11 import parkup.repositories.ParkingSpaceRepository; 12 12 import parkup.repositories.ParkingZoneRepository; 13 import parkup.repositories. TablickaRepository;13 import parkup.repositories.PlateRepository; 14 14 15 15 import javax.transaction.Transactional; … … 25 25 private final ParkingZoneRepository parkingZoneRepository; 26 26 private final ParkingSpaceRepository parkingSpaceRepository; 27 private final TablickaRepository tablickaRepository;27 private final PlateRepository plateRepository; 28 28 29 29 @Autowired 30 public ParkingSessionService(ParkingSessionRepository parkingSessionRepository, ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, TablickaRepository tablickaRepository) {30 public ParkingSessionService(ParkingSessionRepository parkingSessionRepository, ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, PlateRepository plateRepository) { 31 31 this.parkingSessionRepository = parkingSessionRepository; 32 32 this.parkingZoneRepository = parkingZoneRepository; 33 33 this.parkingSpaceRepository = parkingSpaceRepository; 34 this. tablickaRepository = tablickaRepository;34 this.plateRepository = plateRepository; 35 35 } 36 36 … … 83 83 public Optional<ParkingSession> startParkingSession(String tablica, int parkingZoneId) { 84 84 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)); 88 88 } 89 tablicka=tablickaRepository.findByTablica(tablica);90 ParkingSession sessionToAdd = new ParkingSession( tablicka);89 plate = plateRepository.findByPlate(tablica); 90 ParkingSession sessionToAdd = new ParkingSession(plate); 91 91 sessionToAdd.setParkingZone(parkingZone); 92 92 parkingSessionRepository.save(sessionToAdd); -
sources/app/src/main/java/parkup/services/ParkingSpaceService.java
r9ff45d6 r9dd526f 4 4 import org.springframework.stereotype.Service; 5 5 import parkup.entities.ParkingSpace; 6 import parkup.entities.ParkingZone; 6 7 import parkup.repositories.ParkingSpaceRepository; 7 8 import parkup.repositories.ParkingZoneRepository; … … 48 49 Optional<ParkingSpace> ParkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId)); 49 50 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)) { 52 53 Optional<ParkingSpace> parkingSpaceOpt1 = Optional.ofNullable(parkingSpaceRepository.findByPsName(psName)); 53 54 if (parkingSpaceOpt1.isPresent()) { … … 55 56 } 56 57 57 ParkingSpaceNov.setPsName(psName);58 parkingSpaceNew.setPsName(psName); 58 59 } 59 60 60 if (!Objects.equals( ParkingSpaceNov.isTaken(), taken)) {61 ParkingSpaceNov.setTaken(taken);61 if (!Objects.equals(parkingSpaceNew.isTaken(), taken)) { 62 parkingSpaceNew.setTaken(taken); 62 63 } 63 64 64 65 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); 67 68 } 68 69 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); 71 72 } 72 return ParkingSpaceNov;73 return parkingSpaceNew; 73 74 }else{ 74 75 throw new IllegalStateException("ParkingSpace does not exist"); … … 80 81 Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId)); 81 82 if (parkingSpaceOpt.isPresent()) { 83 for(ParkingZone pz: parkingZoneRepository.findAll()){ 84 pz.getParkingSpaces().remove(parkingSpaceOpt.get()); 85 parkingZoneRepository.save(pz); 86 } 82 87 parkingSpaceRepository.deleteByPsId(parkingSpaceId); 83 88 } else { -
sources/app/src/main/java/parkup/services/ParkingZoneService.java
r9ff45d6 r9dd526f 4 4 import org.springframework.stereotype.Service; 5 5 import parkup.data.ParkingZoneLocation; 6 import parkup.entities.ParkingSession;7 6 import parkup.entities.ParkingSpace; 8 7 import parkup.entities.ParkingZone; 9 import parkup.entities. Vraboten;8 import parkup.entities.Worker; 10 9 import parkup.repositories.ParkingSessionRepository; 11 10 import parkup.repositories.ParkingSpaceRepository; 12 11 import parkup.repositories.ParkingZoneRepository; 13 import parkup.repositories. VrabotenRepository;12 import parkup.repositories.WorkerRepository; 14 13 15 14 import javax.transaction.Transactional; … … 23 22 private final ParkingZoneRepository parkingZoneRepository; 24 23 private final ParkingSpaceRepository parkingSpaceRepository; 25 private final VrabotenRepository vrabotenRepository;24 private final WorkerRepository workerRepository; 26 25 private final ParkingSessionRepository parkingSessionRepository; 27 26 28 27 @Autowired 29 public ParkingZoneService(ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, VrabotenRepository vrabotenRepository, ParkingSessionRepository parkingSessionRepository) {28 public ParkingZoneService(ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, WorkerRepository workerRepository, ParkingSessionRepository parkingSessionRepository) { 30 29 this.parkingZoneRepository = parkingZoneRepository; 31 30 this.parkingSpaceRepository = parkingSpaceRepository; 32 31 this.parkingSessionRepository = parkingSessionRepository; 33 this. vrabotenRepository = vrabotenRepository;32 this.workerRepository = workerRepository; 34 33 } 35 34 36 35 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; 38 41 } 39 42 40 43 public ParkingZone findById(int parkingZoneId) { 41 44 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(); 43 50 } 44 51 … … 134 141 ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId); 135 142 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); 139 146 } 140 147 } … … 158 165 return parkingZoneOpt; 159 166 } 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 } 160 180 } 161 181 -
sources/app/src/main/java/parkup/services/RegisteredUserService.java
r9ff45d6 r9dd526f 17 17 import parkup.configs.token.ConfirmationTokenRP; 18 18 import parkup.configs.token.ConfirmationTokenService; 19 import parkup.data. Tablicka;20 import parkup.entities.Regist riranParkirac;21 import parkup.repositories.Regist riranParkiracRepository;19 import parkup.data.Plate; 20 import parkup.entities.RegisteredUser; 21 import parkup.repositories.RegisteredUserRepository; 22 22 23 23 @Service 24 public class Regist riranParkiracService implements UserDetailsService {25 private final Regist riranParkiracRepository registriranParkiracRepository;24 public class RegisteredUserService implements UserDetailsService { 25 private final RegisteredUserRepository registeredUserRepository; 26 26 private final BCryptPasswordEncoder bCryptPasswordEncoder; 27 27 private final ConfirmationTokenService confirmationTokenService; 28 private EmailValidator emailValidator; 29 28 private final EmailValidator emailValidator; 30 29 @Autowired 31 public Regist riranParkiracService(RegistriranParkiracRepository registriranParkiracRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService) {32 this.regist riranParkiracRepository = registriranParkiracRepository;30 public RegisteredUserService(RegisteredUserRepository registeredUserRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService, EmailValidator emailValidator) { 31 this.registeredUserRepository = registeredUserRepository; 33 32 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 34 33 this.confirmationTokenService = confirmationTokenService; 34 this.emailValidator = emailValidator; 35 35 } 36 36 37 public List<Regist riranParkirac> getRegPark() {38 return this.regist riranParkiracRepository.findAll();37 public List<RegisteredUser> getRegPark() { 38 return this.registeredUserRepository.findAll(); 39 39 } 40 40 41 public Optional<Regist riranParkirac> addRegPark(RegistriranParkiracregPark) {42 Optional<Regist riranParkirac> regParkOpt = this.registriranParkiracRepository.findRegistriranParkiracByEmail(regPark.getEmail());41 public Optional<RegisteredUser> addRegPark(RegisteredUser regPark) { 42 Optional<RegisteredUser> regParkOpt = this.registeredUserRepository.findRegisteredUserByEmail(regPark.getEmail()); 43 43 if (regParkOpt.isPresent()) { 44 44 throw new IllegalStateException("Email already taken, try adding a registriranParkirac with a different valid email address"); 45 45 } else { 46 46 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); 49 48 } 50 49 else { … … 56 55 57 56 @Transactional 58 public Regist riranParkirac updateRegPark(int regParkId, String name, String surname, String mobile, String email,List<Tablicka> regTablicki) {59 Optional<Regist riranParkirac> 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)); 60 59 if (regParkOpt.isPresent()) { 61 Regist riranParkirac regParkNov = this.registriranParkiracRepository.findByRegParkId(regParkId);60 RegisteredUser regParkNov = this.registeredUserRepository.findByRegParkId(regParkId); 62 61 if (email != null && email.length() > 1 && email.contains("@") && !Objects.equals(regParkNov.getEmail(), email)) { 63 Optional<Regist riranParkirac> userOpt1 = this.registriranParkiracRepository.findRegistriranParkiracByEmail(email);62 Optional<RegisteredUser> userOpt1 = this.registeredUserRepository.findRegisteredUserByEmail(email); 64 63 if (userOpt1.isPresent()) { 65 64 throw new IllegalStateException("email taken"); … … 80 79 regParkNov.setMobile(mobile); 81 80 } 82 regParkNov.set RegTablicki(regTablicki);81 regParkNov.setPlates(regTablicki); 83 82 return regParkNov; 84 83 }else{ … … 89 88 @Transactional 90 89 @Modifying 91 public Optional<Regist riranParkirac> deleteRegPark(int regParkId) {92 Optional<Regist riranParkirac> regPark = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId));90 public Optional<RegisteredUser> deleteRegPark(int regParkId) { 91 Optional<RegisteredUser> regPark = Optional.ofNullable(this.registeredUserRepository.findByRegParkId(regParkId)); 93 92 if (regPark.isPresent()) { 94 93 //TODO da povikamo metod od ConfirmationTokenService za brisenje na ConfirmationTokenRP *DONE 95 94 //TODO da se izbrisat tablicki i da ne se dupliraat istite tablicki pri update ili add na nov registriranParkirac 96 this.confirmationTokenService.deleteByRegist riranParkirac_RegParkId(regParkId);97 this.regist riranParkiracRepository.deleteByRegParkId(regParkId);95 this.confirmationTokenService.deleteByRegisteredUser_RegParkId(regParkId); 96 this.registeredUserRepository.deleteByRegParkId(regParkId); 98 97 } else { 99 98 throw new IllegalStateException("RegistriranParkirac doesn't exist, therefore can't be deleted"); … … 102 101 } 103 102 104 public Regist riranParkiracfindById(int regParkId) {105 Optional<Regist riranParkirac> regPark = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId));103 public RegisteredUser findById(int regParkId) { 104 Optional<RegisteredUser> regPark = Optional.ofNullable(this.registeredUserRepository.findByRegParkId(regParkId)); 106 105 return regPark.orElse(null); 107 106 } … … 109 108 @Override 110 109 public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { 111 return regist riranParkiracRepository.findRegistriranParkiracByEmail(email)110 return registeredUserRepository.findRegisteredUserByEmail(email) 112 111 .orElseThrow(() -> 113 112 new UsernameNotFoundException("Email not found")); … … 115 114 } 116 115 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()) 120 123 .isPresent(); 121 124 if(registriranParkiracExists){ 122 // TODO check if attributes are the same and123 // TODO if email not confirmed send confirmation email124 125 125 throw new IllegalStateException("Email already taken"); 126 126 } 127 127 128 128 String encodedPassword = bCryptPasswordEncoder 129 .encode(regist riranParkirac.getPassword());129 .encode(registeredUser.getPassword()); 130 130 131 regist riranParkirac.setPassword(encodedPassword);131 registeredUser.setPassword(encodedPassword); 132 132 133 registriranParkiracRepository.save(registriranParkirac); 134 135 // TODO: Send confirmation token 133 registeredUserRepository.save(registeredUser); 136 134 137 135 String token = UUID.randomUUID().toString(); … … 140 138 LocalDateTime.now(), 141 139 LocalDateTime.now().plusMinutes(15), 142 regist riranParkirac140 registeredUser 143 141 ); 144 142 145 143 confirmationTokenService.saveConfirmationTokenRP(confirmationTokenRP); 146 147 // TODO: SEND EMAIL148 144 149 145 return token; … … 151 147 152 148 public int enableRegistriranParkirac(String email) { 153 return regist riranParkiracRepository.enableRegistriranParkirac(email);149 return registeredUserRepository.enableRegisteredUser(email); 154 150 } 155 151 } -
sources/app/src/main/resources/application.properties
r9ff45d6 r9dd526f 7 7 spring.jpa.properties.hibernate.format_sql=true 8 8 9 spring.mail.host=localhost10 spring.mail.port=102511 spring.mail.username=hello12 spring.mail.password=hello9 #spring.mail.host=localhost 10 #spring.mail.port=1025 11 #spring.mail.username=hello 12 #spring.mail.password=hello 13 13 14 spring.mail.properties.mail.transport.protocol=smtp15 spring.mail.properties.mail.smtp.ssl.trust="*"16 spring.mail.properties.mail.smtp.auth=false17 spring.mail.properties.mail.smtp.starttls.enable=false18 spring.mail.properties.mail.smtp.connectiontimeout=500019 spring.mail.properties.mail.smtp.timeout=300020 spring.mail.properties.mail.smtp.writetimeout=500014 #spring.mail.properties.mail.transport.protocol=smtp 15 #spring.mail.properties.mail.smtp.ssl.trust="*" 16 #spring.mail.properties.mail.smtp.auth=false 17 #spring.mail.properties.mail.smtp.starttls.enable=false 18 #spring.mail.properties.mail.smtp.connectiontimeout=5000 19 #spring.mail.properties.mail.smtp.timeout=3000 20 #spring.mail.properties.mail.smtp.writetimeout=5000 21 21 22 23 spring.mail.host=smtp.gmail.com 24 spring.mail.port=587 25 spring.mail.username=etnosfreelance@gmail.com 26 spring.mail.password=gfjslyfsqkvlzoxw 27 spring.mail.properties.mail.smtp.auth=true 28 spring.mail.properties.mail.smtp.starttls.enable=true 29
Note:
See TracChangeset
for help on using the changeset viewer.