Changes in / [3a58bd6:9504a09]
- Location:
- sources/app
- Files:
-
- 9 added
- 45 deleted
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
sources/app/ParkUp.iml
r3a58bd6 r9504a09 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> 3 <component name="EclipseModuleManager">4 <conelement value="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER" />5 <src_description expected_position="2">6 <src_folder value="file://$MODULE_DIR$/src/main/java" expected_position="0" />7 <src_folder value="file://$MODULE_DIR$/src/main/resources" expected_position="1" />8 <src_folder value="file://$MODULE_DIR$/src/test/java" expected_position="2" />9 <src_folder value="file://$MODULE_DIR$/target/generated-sources/annotations" expected_position="5" />10 <src_folder value="file://$MODULE_DIR$/target/generated-test-sources/test-annotations" expected_position="6" />11 </src_description>12 </component>13 3 <component name="FacetManager"> 14 <facet type="web" name="Web">15 <configuration>16 <webroots />17 <sourceRoots>18 <root url="file://$MODULE_DIR$/src/main/java" />19 <root url="file://$MODULE_DIR$/src/main/resources" />20 <root url="file://$MODULE_DIR$/target/generated-sources/annotations" />21 <root url="file://$MODULE_DIR$/target/generated-test-sources/test-annotations" />22 </sourceRoots>23 </configuration>24 </facet>25 4 <facet type="jpa" name="JPA"> 26 5 <configuration> … … 37 16 <configuration /> 38 17 </facet> 18 <facet type="web" name="Web"> 19 <configuration> 20 <webroots /> 21 </configuration> 22 </facet> 39 23 </component> 40 24 <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"> … … 44 28 <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> 45 29 <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> 46 <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />47 <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" />48 <sourceFolder url="file://$MODULE_DIR$/target/generated-test-sources/test-annotations" isTestSource="false" />49 30 <excludeFolder url="file://$MODULE_DIR$/target" /> 50 31 </content> 51 32 <orderEntry type="inheritedJdk" /> 52 <orderEntry type="library" name="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER" level="application" />53 33 <orderEntry type="sourceFolder" forTests="false" /> 54 34 <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jdbc:2.4.5" level="project" /> -
sources/app/src/main/java/parkup/configs/RegistrationRequest.java
r3a58bd6 r9504a09 6 6 private final String email; 7 7 private final String password; 8 private final String mobile; 8 9 9 public RegistrationRequest(String firstName, String lastName, String email, String password ) {10 public RegistrationRequest(String firstName, String lastName, String email, String password, String mobile) { 10 11 this.firstName = firstName; 11 12 this.lastName = lastName; 12 13 this.email = email; 13 14 this.password = password; 15 this.mobile = mobile; 14 16 } 15 17 … … 30 32 } 31 33 34 public String getMobile(){ 35 return mobile; 36 } 37 32 38 } -
sources/app/src/main/java/parkup/configs/WebSecurityConfig.java
r3a58bd6 r9504a09 9 9 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; 10 10 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 11 import parkup.services.AdministratorService; 11 import parkup.services.RegistriranParkiracService; 12 import parkup.services.VrabotenService; 12 13 14 @EnableWebSecurity 13 15 @Configuration 14 @EnableWebSecurity15 16 public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 17 private final VrabotenService vrabotenService; 18 private final BCryptPasswordEncoder bCryptPasswordEncoder; 19 private final RegistriranParkiracService registriranParkiracService; 16 20 17 private final AdministratorService administratorService; 18 private final BCryptPasswordEncoder bCryptPasswordEncoder; 21 public WebSecurityConfig(VrabotenService vrabotenService, BCryptPasswordEncoder bCryptPasswordEncoder, RegistriranParkiracService registriranParkiracService) { 22 this.vrabotenService = vrabotenService; 23 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 24 this.registriranParkiracService = registriranParkiracService; 25 } 19 26 20 public WebSecurityConfig(AdministratorService administratorService, BCryptPasswordEncoder bCryptPasswordEncoder) { 21 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 22 this.administratorService = administratorService; 27 @Override 28 protected void configure(HttpSecurity http) throws Exception { 29 http 30 .csrf().disable() 31 .authorizeRequests() 32 .antMatchers("/vraboten/registration/**") 33 .permitAll() 34 .antMatchers("/registriranParkirac/registration/**") 35 .permitAll() 36 .anyRequest() 37 .authenticated().and().formLogin(); 38 } 39 40 @Override 41 protected void configure(AuthenticationManagerBuilder auth) throws Exception { 42 auth.authenticationProvider(daoAuthenticationProviderW()); 43 auth.authenticationProvider(daoAuthenticationProviderRP()); 44 } 45 46 @Bean 47 public DaoAuthenticationProvider daoAuthenticationProviderW() { 48 DaoAuthenticationProvider provider = new DaoAuthenticationProvider(); 49 provider.setPasswordEncoder(bCryptPasswordEncoder); 50 provider.setUserDetailsService(vrabotenService); 51 return provider; 52 } 53 54 @Bean 55 public DaoAuthenticationProvider daoAuthenticationProviderRP(){ 56 DaoAuthenticationProvider provider = new DaoAuthenticationProvider(); 57 provider.setPasswordEncoder(bCryptPasswordEncoder); 58 provider.setUserDetailsService(registriranParkiracService); 59 return provider; 60 } 61 23 62 } 24 25 @Override26 protected void configure(HttpSecurity http) throws Exception {27 http28 .csrf().disable()29 .authorizeRequests()30 .antMatchers("/administrator/registration/**")31 .permitAll()32 .anyRequest()33 .authenticated().and()34 .formLogin();35 }36 37 @Override38 protected void configure(AuthenticationManagerBuilder auth) throws Exception {39 auth.authenticationProvider(daoAuthenticationProvider());40 }41 42 @Bean43 public DaoAuthenticationProvider daoAuthenticationProvider(){44 DaoAuthenticationProvider provider = new DaoAuthenticationProvider();45 provider.setPasswordEncoder(bCryptPasswordEncoder);46 provider.setUserDetailsService(administratorService);47 return provider;48 }49 } -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java
r3a58bd6 r9504a09 9 9 public class ConfirmationTokenService { 10 10 11 private final ConfirmationTokenRepository confirmationTokenRepository; 11 private final ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP; 12 private final ConfirmationTokenRepositoryW confirmationTokenRepositoryW; 12 13 13 public ConfirmationTokenService(ConfirmationTokenRepository confirmationTokenRepository) { 14 this.confirmationTokenRepository = confirmationTokenRepository; 14 public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP, ConfirmationTokenRepositoryW confirmationTokenRepositoryW) { 15 this.confirmationTokenRepositoryRP = confirmationTokenRepositoryRP; 16 this.confirmationTokenRepositoryW = confirmationTokenRepositoryW; 15 17 } 16 18 17 public void saveConfirmationToken (ConfirmationTokentoken){18 confirmationTokenRepository .save(token);19 public void saveConfirmationTokenRP(ConfirmationTokenRP token){ 20 confirmationTokenRepositoryRP.save(token); 19 21 } 20 22 21 public Optional<ConfirmationToken> getToken(String token) { 22 return confirmationTokenRepository.findByToken(token); 23 public void saveConfirmationTokenW(ConfirmationTokenW token){ 24 confirmationTokenRepositoryW.save(token);} 25 26 public Optional<ConfirmationTokenRP> getTokenRP(String token) { 27 return confirmationTokenRepositoryRP.findByToken(token); 28 } 29 public Optional<ConfirmationTokenW> getTokenW(String token){ 30 return confirmationTokenRepositoryW.findByToken(token); 23 31 } 24 32 25 public int setConfirmedAt(String token) { 26 return confirmationTokenRepository.updateConfirmedAt(token, LocalDateTime.now()); 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); 39 } 40 41 public int setConfirmedAtRP(String token) { 42 return confirmationTokenRepositoryRP.updateConfirmedAt(token, LocalDateTime.now()); 43 } 44 public int setConfirmedAtW(String token){ 45 return confirmationTokenRepositoryW.updateConfirmedAt(token,LocalDateTime.now()); 27 46 } 28 47 } -
sources/app/src/main/java/parkup/controllers/AdministratorController.java
r3a58bd6 r9504a09 2 2 3 3 import java.util.List; 4 import java.util.Optional; 5 4 6 import org.springframework.beans.factory.annotation.Autowired; 5 7 import org.springframework.web.bind.annotation.*; 6 8 import parkup.configs.RegistrationRequest; 7 import parkup.configs.RegistrationService ;9 import parkup.configs.RegistrationServiceRP; 8 10 import parkup.entities.Administrator; 9 11 import parkup.services.AdministratorService; … … 12 14 public class AdministratorController { 13 15 private final AdministratorService administratorService; 14 private final RegistrationService registrationService;16 private final RegistrationServiceRP registrationServiceRP; 15 17 16 18 @Autowired 17 public AdministratorController(AdministratorService administratorService, RegistrationService registrationService) {19 public AdministratorController(AdministratorService administratorService, RegistrationServiceRP registrationServiceRP) { 18 20 this.administratorService = administratorService; 19 this.registrationService = registrationService;21 this.registrationServiceRP = registrationServiceRP; 20 22 } 21 23 … … 36 38 37 39 @PostMapping({"/administrator"}) 38 public voidaddAdministrator(@RequestBody Administrator administrator) {39 this.administratorService.addAdministrator(administrator);40 public Optional<Administrator> addAdministrator(@RequestBody Administrator administrator) { 41 return this.administratorService.addAdministrator(administrator); 40 42 } 41 43 42 44 @PutMapping({"/administrator/{administratorId}"}) 43 public voidupdateAdministrator(@PathVariable int administratorId, @RequestBody Administrator administrator) {44 this.administratorService.updateAdministrator(administratorId, administrator.getFirstName(), administrator.getLastName(), administrator.getMobile(), administrator.getEmail());45 public Administrator updateAdministrator(@PathVariable int administratorId, @RequestBody Administrator administrator) { 46 return this.administratorService.updateAdministrator(administratorId, administrator.getFirstName(), administrator.getLastName(), administrator.getMobile(), administrator.getEmail()); 45 47 } 46 48 47 49 @DeleteMapping({"/administrator/{administratorId}"}) 48 public voiddeleteAdministrator(@PathVariable int administratorId) {49 this.administratorService.deleteAdministrator(administratorId);50 public Optional<Administrator> deleteAdministrator(@PathVariable int administratorId) { 51 return this.administratorService.deleteAdministrator(administratorId); 50 52 } 51 53 52 54 @PostMapping({"/administrator/registration"}) 53 55 public String register(@RequestBody RegistrationRequest request){ 54 return registrationService .register(request);56 return registrationServiceRP.register(request); 55 57 } 56 58 57 59 @GetMapping(path = "/administrator/registration/confirm") 58 60 public String confirm(@RequestParam("token") String token) { 59 return registrationService .confirmToken(token);61 return registrationServiceRP.confirmToken(token); 60 62 } 61 63 } -
sources/app/src/main/java/parkup/controllers/ParkingSessionController.java
r3a58bd6 r9504a09 7 7 8 8 import java.util.List; 9 import java.util.Optional; 9 10 10 11 @RestController … … 33 34 34 35 @PostMapping({"/parkingSession"}) 35 public voidaddParkingSession(@RequestBody ParkingSession parkingSession) {36 public Optional<ParkingSession> addParkingSession(@RequestBody ParkingSession parkingSession) { 36 37 //System.out.println("???????"); 37 parkingSessionService.addParkingSession(parkingSession);38 return this.parkingSessionService.addParkingSession(parkingSession); 38 39 } 39 40 40 41 @PutMapping({"/parkingSession/{parkingSessionId}"}) 41 42 public void updateParkingSession(@PathVariable int parkingSessionId, @RequestBody ParkingSession parkingSession) { 42 parkingSessionService.updateParkingSession(parkingSessionId, parkingSession.getTimeStart(), parkingSession.getTimeEnd()); 43 parkingSessionService.updateParkingSession(parkingSessionId, 44 parkingSession.getTimeStart(), parkingSession.getTimeEnd(), parkingSession.getTablica()); 43 45 } 44 46 45 47 @DeleteMapping({"/parkingSession/{parkingSessionId}"}) 46 public voiddeleteParkingSession(@PathVariable int parkingSessionId) {47 parkingSessionService.deleteParkingSession(parkingSessionId);48 public Optional<ParkingSession> deleteParkingSession(@PathVariable int parkingSessionId) { 49 return this.parkingSessionService.deleteParkingSession(parkingSessionId); 48 50 } 49 51 } -
sources/app/src/main/java/parkup/controllers/ParkingSpaceController.java
r3a58bd6 r9504a09 7 7 8 8 import java.util.List; 9 import java.util.Optional; 9 10 10 11 @RestController … … 33 34 34 35 @PostMapping({"/parkingSpace"}) 35 public voidaddParkingSpace(@RequestBody ParkingSpace parkingSpace) {36 public Optional<ParkingSpace> addParkingSpace(@RequestBody ParkingSpace parkingSpace) { 36 37 //System.out.println("???????"); 37 parkingSpaceService.addParkingSpace(parkingSpace);38 return this.parkingSpaceService.addParkingSpace(parkingSpace); 38 39 } 39 40 40 41 @PutMapping({"/parkingSpace/{parkingSpaceId}"}) 41 42 public void updateParkingSpace(@PathVariable int parkingSpaceId, @RequestBody ParkingSpace parkingSpace) { 42 parkingSpaceService.updateParkingSpace(parkingSpaceId, parkingSpace.getPsName(), parkingSpace.isTaken(), parkingSpace.isHandicaped()); 43 parkingSpaceService.updateParkingSpace(parkingSpaceId, parkingSpace.getPsName(), parkingSpace.isTaken(), 44 parkingSpace.isHandicaped(), parkingSpace.getLat(), parkingSpace.getLng()); 43 45 } 44 46 45 47 @DeleteMapping({"/parkingSpace/{parkingSpaceId}"}) 46 public voiddeleteParkingSpace(@PathVariable int parkingSpaceId) {47 parkingSpaceService.deleteParkingSpace(parkingSpaceId);48 public Optional<ParkingSpace> deleteParkingSpace(@PathVariable int parkingSpaceId) { 49 return this.parkingSpaceService.deleteParkingSpace(parkingSpaceId); 48 50 } 49 51 } -
sources/app/src/main/java/parkup/controllers/ParkingZoneController.java
r3a58bd6 r9504a09 7 7 8 8 import java.util.List; 9 import java.util.Optional; 9 10 10 11 @RestController … … 32 33 } 33 34 35 @GetMapping({"parkingZone/parkingZoneNames"}) 36 public List<String> getParkingZoneNames(){ 37 return this.parkingZoneService.getAllParkingZoneNames(); 38 } 39 34 40 @PostMapping({"/parkingZone"}) 35 public void addParkingZone(@RequestBody ParkingZone parkingZone) { 36 //System.out.println("???????"); 37 parkingZoneService.addParkingZone(parkingZone); 41 public Optional<ParkingZone> addParkingZone(@RequestBody ParkingZone parkingZone) { 42 return this.parkingZoneService.addParkingZone(parkingZone); 43 } 44 45 @PostMapping("/parkingZoneName") 46 public ParkingZone addParkingZoneName(@RequestBody String name){ 47 return this.parkingZoneService.addParkingZoneNameOnly(name); 38 48 } 39 49 40 50 @PutMapping({"/parkingZone/{parkingZoneId}"}) 41 public void updateParkingZone(@PathVariable int parkingZoneId, @RequestBody ParkingZone parkingZone) { 42 parkingZoneService.updateParkingZone(parkingZoneId, parkingZone.getPzName(), parkingZone.getPrice(), parkingZone.getCapacity(), parkingZone.getWorkHours(),parkingZone.getLocation()); 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 parkingZone.getParkingSpaces(), parkingZone.getParkingZoneLocation()); 43 55 } 44 56 45 57 @DeleteMapping({"/parkingZone/{parkingZoneId}"}) 46 public voiddeleteParkingZone(@PathVariable int parkingZoneId) {47 parkingZoneService.deleteParkingZone(parkingZoneId);58 public Optional<ParkingZone> deleteParkingZone(@PathVariable int parkingZoneId) { 59 return this.parkingZoneService.deleteParkingZone(parkingZoneId); 48 60 } 49 61 } -
sources/app/src/main/java/parkup/controllers/RegistriranParkiracController.java
r3a58bd6 r9504a09 2 2 3 3 import java.util.List; 4 import java.util.Optional; 5 4 6 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.web.bind.annotation.DeleteMapping; 6 import org.springframework.web.bind.annotation.GetMapping; 7 import org.springframework.web.bind.annotation.PathVariable; 8 import org.springframework.web.bind.annotation.PostMapping; 9 import org.springframework.web.bind.annotation.PutMapping; 10 import org.springframework.web.bind.annotation.RequestBody; 11 import org.springframework.web.bind.annotation.RestController; 7 import org.springframework.web.bind.annotation.*; 8 import parkup.configs.RegistrationRequest; 9 import parkup.configs.RegistrationServiceRP; 12 10 import parkup.entities.RegistriranParkirac; 13 11 import parkup.services.RegistriranParkiracService; … … 16 14 public class RegistriranParkiracController { 17 15 private final RegistriranParkiracService registriranParkiracService; 16 private final RegistrationServiceRP registrationServiceRP; 18 17 19 18 @Autowired 20 public RegistriranParkiracController(RegistriranParkiracService registriranParkiracService ) {19 public RegistriranParkiracController(RegistriranParkiracService registriranParkiracService, RegistrationServiceRP registrationServiceRP) { 21 20 this.registriranParkiracService = registriranParkiracService; 21 this.registrationServiceRP = registrationServiceRP; 22 22 } 23 23 … … 38 38 39 39 @PostMapping({"/registriranParkirac"}) 40 public voidaddRegistriranParkirac(@RequestBody RegistriranParkirac regPark) {41 this.registriranParkiracService.addRegPark(regPark);40 public Optional<RegistriranParkirac> addRegistriranParkirac(@RequestBody RegistriranParkirac regPark) { 41 return this.registriranParkiracService.addRegPark(regPark); 42 42 } 43 43 44 44 @PutMapping({"/registriranParkirac/{regParkId}"}) 45 public voidupdateRegistriranParkirac(@PathVariable int regParkId, @RequestBody RegistriranParkirac regPark) {46 this.registriranParkiracService.updateRegPark(regParkId, regPark.getName(), regPark.getSurname(), regPark.getMobile(), regPark.getEmail());45 public RegistriranParkirac updateRegistriranParkirac(@PathVariable int regParkId, @RequestBody RegistriranParkirac regPark) { 46 return this.registriranParkiracService.updateRegPark(regParkId, regPark.getName(), regPark.getSurname(), regPark.getMobile(), regPark.getEmail(),regPark.getRegTablicki()); 47 47 } 48 48 49 49 @DeleteMapping({"/registriranParkirac/{regParkId}"}) 50 public void deleteRegistriranParkirac(@PathVariable int regParkId) { 51 this.registriranParkiracService.deleteRegPark(regParkId); 50 public Optional<RegistriranParkirac> deleteRegistriranParkirac(@PathVariable int regParkId) { 51 return this.registriranParkiracService.deleteRegPark(regParkId); 52 } 53 54 @PostMapping({"/registriranParkirac/registration"}) 55 public String register(@RequestBody RegistrationRequest request){ 56 return registrationServiceRP.register(request); 57 } 58 59 @GetMapping(path = "/registriranParkirac/registration/confirm") 60 public String confirm(@RequestParam("token") String token) { 61 return registrationServiceRP.confirmToken(token); 52 62 } 53 63 } -
sources/app/src/main/java/parkup/controllers/VrabotenController.java
r3a58bd6 r9504a09 2 2 3 3 import java.util.List; 4 import java.util.Optional; 5 4 6 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.web.bind.annotation.DeleteMapping; 6 import org.springframework.web.bind.annotation.GetMapping; 7 import org.springframework.web.bind.annotation.PathVariable; 8 import org.springframework.web.bind.annotation.PostMapping; 9 import org.springframework.web.bind.annotation.PutMapping; 10 import org.springframework.web.bind.annotation.RequestBody; 11 import org.springframework.web.bind.annotation.RestController; 7 import org.springframework.web.bind.annotation.*; 8 import parkup.configs.RegistrationRequest; 9 import parkup.configs.RegistrationServiceW; 12 10 import parkup.entities.Vraboten; 13 11 import parkup.services.VrabotenService; 12 import parkup.data.VrabotenDemo; 14 13 15 14 @RestController 16 15 public class VrabotenController { 17 16 private final VrabotenService vrabotenService; 17 private final RegistrationServiceW registrationServiceW; 18 18 19 19 @Autowired 20 public VrabotenController(VrabotenService vrabotenService ) {20 public VrabotenController(VrabotenService vrabotenService, RegistrationServiceW registrationServiceW) { 21 21 this.vrabotenService = vrabotenService; 22 this.registrationServiceW = registrationServiceW; 22 23 } 23 24 … … 37 38 } 38 39 40 @GetMapping({"/vraboten/vrabotenDemo"}) 41 public List<VrabotenDemo> getVraboteniDemos(){ 42 return this.vrabotenService.getAllVraboteniDemos(); 43 } 44 39 45 @PostMapping({"/vraboten"}) 40 public void addVraboten(@RequestBody Vraboten vraboten) { 41 this.vrabotenService.addVraboten(vraboten); 46 public Optional<Vraboten> addVraboten(@RequestBody Vraboten vraboten) { 47 return this.vrabotenService.addVraboten(vraboten); 48 } 49 50 @PostMapping({"/vraboten/{vrabotenId}"}) 51 public void lockVraboten(@PathVariable int vrabotenId) { 52 this.vrabotenService.lockVrabotenAcc(vrabotenId); 42 53 } 43 54 44 55 @PutMapping({"/vraboten/{vrabotenId}"}) 45 public void updateVraboten(@PathVariable int vrabotenId, @RequestBody Vraboten vraboten) { 46 this.vrabotenService.updateVraboten(vrabotenId, vraboten.getFirstName(), vraboten.getLastName(), vraboten.getMobile(), vraboten.getEmail()); 56 public Vraboten updateVraboten(@PathVariable int vrabotenId, @RequestBody Vraboten vraboten) { 57 return this.vrabotenService.updateVraboten(vrabotenId, vraboten.getFirstName(), vraboten.getLastName(), 58 vraboten.getMobile(), vraboten.getEmail(), vraboten.getStatus()); 47 59 } 48 60 49 61 @DeleteMapping({"/vraboten/{vrabotenId}"}) 50 public void deleteVraboten(@PathVariable int vrabotenId) { 51 this.vrabotenService.deleteVraboten(vrabotenId); 62 public Optional<Vraboten> deleteVraboten(@PathVariable int vrabotenId) { 63 return this.vrabotenService.deleteVraboten(vrabotenId); 64 } 65 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); 52 74 } 53 75 } -
sources/app/src/main/java/parkup/data/Tablicka.java
r3a58bd6 r9504a09 1 1 package parkup.data; 2 2 3 import javax.persistence.Entity; 4 import javax.persistence.Id; 3 import javax.persistence.*; 5 4 6 5 @Entity 7 6 public class Tablicka { 8 7 @Id 8 @SequenceGenerator( 9 name="tablicka_sequence_generator", 10 sequenceName = "tablicka_sequence", 11 allocationSize = 1, 12 initialValue = 1000 13 ) 14 @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e 15 strategy = GenerationType.SEQUENCE, 16 generator = "tablicka_sequence_generator" 17 ) 9 18 private int tablicaId; 19 10 20 private String tablica; 11 21 -
sources/app/src/main/java/parkup/entities/ParkingSession.java
r3a58bd6 r9504a09 1 1 package parkup.entities; 2 3 import parkup.data.Tablicka; 2 4 3 5 import javax.persistence.*; … … 9 11 @Column(name = "parking_session_id") 10 12 @SequenceGenerator( 11 name="parking_session_ generator",13 name="parking_session_sequence_generator", 12 14 sequenceName = "parking_session_sequence", 13 15 allocationSize = 1, 14 initialValue = 70016 initialValue = 800 15 17 ) 16 18 @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e … … 26 28 private String timeEnd; 27 29 30 @OneToOne(cascade = {CascadeType.ALL}) 31 @JoinColumn(name = "reg_tablicka", nullable = false) 32 private Tablicka tablica; 33 28 34 public ParkingSession() {} 29 35 30 public ParkingSession(int pssId, String timeStart, String timeEnd ) {36 public ParkingSession(int pssId, String timeStart, String timeEnd, Tablicka tablica) { 31 37 this.pssId = pssId; 32 38 this.timeStart = timeStart; 33 39 this.timeEnd = timeEnd; 40 this.tablica = tablica; 34 41 } 35 42 36 public ParkingSession(String timeStart, String timeEnd ) {43 public ParkingSession(String timeStart, String timeEnd, Tablicka tablica) { 37 44 this.timeStart = timeStart; 38 45 this.timeEnd = timeEnd; 46 this.tablica = tablica; 39 47 } 40 48 … … 62 70 this.timeEnd = timeEnd; 63 71 } 72 73 public Tablicka getTablica() { 74 return tablica; 75 } 76 77 public void setTablica(Tablicka tablica) { 78 this.tablica = tablica; 79 } 64 80 } -
sources/app/src/main/java/parkup/entities/ParkingSpace.java
r3a58bd6 r9504a09 9 9 @Column(name = "parking_space_id") 10 10 @SequenceGenerator( 11 name="parking_space_ generator",11 name="parking_space_sequence_generator", 12 12 sequenceName = "parking_space_sequence", 13 13 allocationSize = 1, 14 initialValue = 60014 initialValue = 700 15 15 ) 16 16 @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e … … 29 29 private boolean isHandicaped; 30 30 31 @Column(name = "latitude") 32 private float lat; 33 34 @Column(name = "longitude") 35 private float lng; 36 37 @OneToOne(cascade = {CascadeType.ALL}) 38 @JoinColumn(name = "parking_zona") 39 private ParkingZone parkingZone; 40 31 41 public ParkingSpace() {} 32 42 33 public ParkingSpace(int psId, String psName, boolean isTaken, boolean isHandicaped ) {43 public ParkingSpace(int psId, String psName, boolean isTaken, boolean isHandicaped, float lat, float lng) { 34 44 this.psId = psId; 35 45 this.psName = psName; 36 46 this.isTaken = isTaken; 37 47 this.isHandicaped = isHandicaped; 48 this.lat = lat; 49 this.lng = lng; 38 50 } 39 51 40 public ParkingSpace(String psName, boolean isTaken, boolean isHandicaped ) {52 public ParkingSpace(String psName, boolean isTaken, boolean isHandicaped, float lat, float lng) { 41 53 this.psName = psName; 42 54 this.isTaken = isTaken; 43 55 this.isHandicaped = isHandicaped; 56 this.lat = lat; 57 this.lng = lng; 44 58 } 45 59 … … 75 89 this.isHandicaped = isHandicaped; 76 90 } 91 92 public float getLat() { 93 return lat; 94 } 95 96 public void setLat(float lat) { 97 this.lat = lat; 98 } 99 100 public float getLng() { 101 return lng; 102 } 103 104 public void setLng(float lng) { 105 this.lng = lng; 106 } 77 107 } 78 108 -
sources/app/src/main/java/parkup/entities/ParkingZone.java
r3a58bd6 r9504a09 1 1 package parkup.entities; 2 3 import parkup.data.ParkingZoneLocation; 2 4 3 5 import javax.persistence.*; … … 10 12 @Id 11 13 @SequenceGenerator( 12 name="parking_zone_ generator",14 name="parking_zone_sequence_generator", 13 15 sequenceName = "parking_zone_sequence", 14 16 allocationSize = 1, 15 initialValue = 50017 initialValue = 600 16 18 ) 17 19 @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e … … 31 33 private int capacity; 32 34 33 @Column(name = " work_hours")34 private String workHours;35 @Column(name = "vreme_od") //za rabotni casovi od: 36 private int from; 35 37 36 @Column(name = "location") 38 @Column(name = "vreme_do") //za rabotni casovi do: 39 private int to; 40 41 @Column(name = "lokacija") 37 42 private String location; 38 43 … … 40 45 private int zafateniMesta; 41 46 47 @Column(name = "color") 48 private String color; 49 50 @ManyToMany(cascade = {CascadeType.ALL}) 51 @JoinColumn(name="odgovorniLica",nullable = true) 52 private List<Vraboten> odgovorniLica; 53 42 54 @OneToMany(cascade = {CascadeType.ALL}) 43 @JoinColumn(name = "parkingSpaces", nullable = false)44 55 private List<ParkingSpace> parkingSpaces; 45 56 46 public ParkingZone() { 57 @OneToOne(cascade = {CascadeType.ALL}) 58 private ParkingZoneLocation parkingZoneLocation; 59 60 public ParkingZone() { 61 this.zafateniMesta = 0; 62 this.parkingSpaces = new ArrayList<ParkingSpace>(); 63 } 64 65 public ParkingZone(String pzName) { 66 this.pzName = pzName; 47 67 this.zafateniMesta = 0; 48 68 this.parkingSpaces = new ArrayList<ParkingSpace>(); 49 69 } 50 70 51 public ParkingZone(int pzId, String pzName, int price, int capacity, String workHours, String location, List<ParkingSpace> parkingSpaces) {71 public ParkingZone(int pzId, String pzName, int price, int capacity, String location, List<ParkingSpace> parkingSpaces, String color, int from, int to) { 52 72 this.pzId = pzId; 53 73 this.pzName = pzName; 54 74 this.price = price; 55 75 this.capacity = capacity; 56 this.workHours = workHours;57 76 this.location = location; 58 77 this.zafateniMesta = 0; 59 78 this.parkingSpaces = parkingSpaces; 79 this.color = color; 80 this.from = from; 81 this.to = to; 60 82 } 61 83 62 public ParkingZone(String pzName, int price, int capacity, String workHours, String location, List<ParkingSpace> parkingSpaces) {84 public ParkingZone(String pzName, int price, int capacity, String location, List<ParkingSpace> parkingSpaces, String color, int from, int to) { 63 85 this.pzName = pzName; 64 86 this.price = price; 65 87 this.capacity = capacity; 66 this.workHours = workHours;67 88 this.location = location; 68 89 this.zafateniMesta = 0; 69 90 this.parkingSpaces = parkingSpaces; 91 this.color = color; 92 this.from = from; 93 this.to = to; 70 94 } 71 95 … … 102 126 } 103 127 104 public String getWorkHours() {105 return this.workHours;106 }107 108 public void setWorkHours(String workHours) {109 this.workHours = workHours;110 }111 112 128 public String getLocation() { 113 129 return this.location; … … 125 141 126 142 public void setParkingSpaces(List<ParkingSpace> parkingSpaces) {this.parkingSpaces = parkingSpaces;} 143 144 public String getColor() { 145 return color; 146 } 147 148 public void setColor(String color) { 149 this.color = color; 150 } 151 152 public int getFrom() { 153 return from; 154 } 155 156 public void setFrom(int from) { 157 this.from = from; 158 } 159 160 public int getTo() { 161 return to; 162 } 163 164 public void setTo(int to) { 165 this.to = to; 166 } 167 168 public ParkingZoneLocation getParkingZoneLocation() { 169 return parkingZoneLocation; 170 } 171 172 public void setParkingZoneLocation(ParkingZoneLocation parkingZoneLocation) { 173 this.parkingZoneLocation = parkingZoneLocation; 174 } 175 176 public List<Vraboten> getOdgovorniLica() { 177 return odgovorniLica; 178 } 179 180 public void setOdgovorniLica(List<Vraboten> odgovorniLica) { 181 this.odgovorniLica = odgovorniLica; 182 } 127 183 } -
sources/app/src/main/java/parkup/entities/RegistriranParkirac.java
r3a58bd6 r9504a09 2 2 3 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Collections; 4 6 import java.util.List; 5 7 import javax.persistence.*; 6 8 9 import org.springframework.security.core.GrantedAuthority; 10 import org.springframework.security.core.authority.SimpleGrantedAuthority; 11 import org.springframework.security.core.userdetails.UserDetails; 7 12 import parkup.data.Tablicka; 8 13 9 14 @Entity 10 15 @Table(name = "registriranParkirac") 11 public class RegistriranParkirac {16 public class RegistriranParkirac implements UserDetails { 12 17 @Id 13 18 @SequenceGenerator( … … 33 38 private String password; 34 39 35 @OneToMany 40 @OneToMany(cascade ={CascadeType.ALL}) 36 41 @Column(name = "regTablicki") 37 42 private List<Tablicka> regTablicki; … … 46 51 private String role; 47 52 53 private boolean locked; 54 55 private boolean enabled; 56 48 57 public RegistriranParkirac() { 49 50 58 this.regTablicki = new ArrayList<Tablicka>(); 51 this.role = "ROLE_REGIST IRAN_PARKIRAC";59 this.role = "ROLE_REGISTRIRAN_PARKIRAC"; 52 60 } 53 61 … … 60 68 this.email = email; 61 69 this.mobile = mobile; 62 this.role = "ROLE_REGIST IRAN_PARKIRAC";70 this.role = "ROLE_REGISTRIRAN_PARKIRAC"; 63 71 } 64 72 … … 70 78 this.email = email; 71 79 this.mobile = mobile; 72 this.role = "ROLE_REGISTIRAN_PARKIRAC"; 80 this.role = "ROLE_REGISTRIRAN_PARKIRAC"; 81 } 82 83 public RegistriranParkirac(String name, String surname, String email, String password, String mobile) { 84 this.name = name; 85 this.surname = surname; 86 this.password = password; 87 this.email = email; 88 this.mobile = mobile; 89 this.role = "ROLE_REGISTRIRAN_PARKIRAC"; 73 90 } 74 91 … … 95 112 public void setSurname(String surname) { 96 113 this.surname = surname; 97 }98 99 public String getPassword() {100 return password;101 }102 103 public void setPassword(String password) {104 this.password = password;105 114 } 106 115 … … 132 141 133 142 public void setRole(String role) {this.role = role;} 143 144 @Override 145 public Collection<? extends GrantedAuthority> getAuthorities() { 146 SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role); 147 return Collections.singleton(authority); 148 } 149 150 public String getPassword() { 151 return password; 152 } 153 154 public void setPassword(String password) { 155 this.password = password; 156 } 157 158 @Override 159 public String getUsername() { 160 return email; 161 } 162 163 @Override 164 public boolean isAccountNonExpired() { 165 return true; 166 } 167 168 @Override 169 public boolean isAccountNonLocked() { 170 return !locked; 171 } 172 173 @Override 174 public boolean isCredentialsNonExpired() { 175 return true; 176 } 177 178 @Override 179 public boolean isEnabled() { 180 return enabled; 181 } 134 182 } 135 183 -
sources/app/src/main/java/parkup/entities/Vraboten.java
r3a58bd6 r9504a09 1 1 package parkup.entities; 2 2 3 import parkup.data.Tablicka; 3 import org.springframework.security.core.GrantedAuthority; 4 import org.springframework.security.core.userdetails.UserDetails; 5 import parkup.data.VrabotenDemo; 4 6 5 7 import javax.persistence.*; 6 8 import java.util.ArrayList; 9 import java.util.Collection; 7 10 import java.util.List; 8 11 9 12 @Entity 10 13 @Table(name = "vraboten") 11 public class Vraboten {14 public class Vraboten implements UserDetails { 12 15 @Id 13 16 @SequenceGenerator( … … 49 52 private String status; 50 53 51 @Column(name = "account") 52 private boolean account; 54 @Column(name="locked") 55 private boolean locked; 56 57 @Column(name = "enabled") 58 private boolean enabled; 59 53 60 54 61 public Vraboten() { 55 62 this.role = "ROLE_VRABOTEN"; 56 63 this.parkingZones = new ArrayList<ParkingZone>(); 57 this. account = true;64 this.enabled = false; 58 65 this.status = "neRaboti"; 59 66 } … … 68 75 this.parkingZones = parkingZones; 69 76 this.role = "ROLE_VRABOTEN"; 70 this. account = true;77 this.enabled = false; 71 78 this.status = "neRaboti"; 72 79 } … … 80 87 this.parkingZones = parkingZones; 81 88 this.role = "ROLE_VRABOTEN"; 82 this. account = true;89 this.enabled = false; 83 90 this.status = "neRaboti"; 91 } 92 93 public Vraboten(String firstName, String lastName, String email, String password, String mobile) { 94 this.firstName=firstName; 95 this.lastName=lastName; 96 this.email=email; 97 this.password=password; 98 this.mobile=mobile; 99 this.parkingZones=new ArrayList<>(); 100 this.enabled=false; 101 this.status="neRaboti"; 102 this.role="ROLE_VRABOTEN"; 84 103 } 85 104 … … 116 135 } 117 136 137 @Override 138 public Collection<? extends GrantedAuthority> getAuthorities() { 139 return null; 140 } 141 118 142 public String getPassword() { 119 143 return password; 120 144 } 121 145 146 @Override 147 public String getUsername() { 148 return email; 149 } 150 151 @Override 152 public boolean isAccountNonExpired() { 153 return true; 154 } 155 156 @Override 157 public boolean isAccountNonLocked() { 158 return !locked; 159 } 160 161 public void lockVraboten(){ 162 this.locked = !locked; 163 } 164 165 @Override 166 public boolean isCredentialsNonExpired() { 167 return true; 168 } 169 170 @Override 171 public boolean isEnabled() { 172 return enabled; 173 } 174 122 175 public void setPassword(String password) { 123 176 this.password = password; … … 144 197 public void setStatus(String status) {this.status = status;} 145 198 146 public boolean isAccount() {return account;}147 148 public void setAccount(boolean account) {this. account= account;}199 public boolean isAccount() {return enabled;} 200 201 public void setAccount(boolean account) {this.enabled = account;} 149 202 } -
sources/app/src/main/java/parkup/repositories/GuestRepository.java
r3a58bd6 r9504a09 3 3 import java.util.Optional; 4 4 import org.springframework.data.jpa.repository.JpaRepository; 5 import org.springframework.stereotype.Repository; 5 6 import parkup.entities.Guest; 6 7 8 @Repository 7 9 public interface GuestRepository extends JpaRepository<Guest, Integer> { 8 10 Guest findByGuestId(int id); -
sources/app/src/main/java/parkup/repositories/ParkingZoneRepository.java
r3a58bd6 r9504a09 2 2 3 3 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.stereotype.Repository; 4 5 import parkup.entities.ParkingZone; 5 6 7 @Repository 6 8 public interface ParkingZoneRepository extends JpaRepository<ParkingZone, Integer> { 7 9 ParkingZone findByPzId(int id); -
sources/app/src/main/java/parkup/repositories/RegistriranParkiracRepository.java
r3a58bd6 r9504a09 3 3 import java.util.Optional; 4 4 import org.springframework.data.jpa.repository.JpaRepository; 5 import org.springframework.data.jpa.repository.Modifying; 6 import org.springframework.data.jpa.repository.Query; 7 import org.springframework.stereotype.Repository; 5 8 import parkup.entities.RegistriranParkirac; 6 9 10 import javax.transaction.Transactional; 11 12 @Repository 7 13 public interface RegistriranParkiracRepository extends JpaRepository<RegistriranParkirac, Integer> { 8 14 RegistriranParkirac findByRegParkId(int regParkId); … … 11 17 12 18 Optional<RegistriranParkirac> findRegistriranParkiracByEmail(String email); 19 20 @Transactional 21 @Modifying 22 @Query("UPDATE RegistriranParkirac rp " + 23 "SET rp.enabled = TRUE WHERE rp.email = ?1") 24 int enableRegistriranParkirac(String email); 13 25 } -
sources/app/src/main/java/parkup/repositories/VrabotenRepository.java
r3a58bd6 r9504a09 3 3 import java.util.Optional; 4 4 import org.springframework.data.jpa.repository.JpaRepository; 5 import org.springframework.data.jpa.repository.Modifying; 6 import org.springframework.data.jpa.repository.Query; 7 import org.springframework.stereotype.Repository; 5 8 import parkup.entities.Vraboten; 6 9 10 import javax.transaction.Transactional; 11 12 @Repository 7 13 public interface VrabotenRepository extends JpaRepository<Vraboten, Integer> { 8 14 Vraboten findByVrabotenId(int id); … … 11 17 12 18 Optional<Vraboten> findVrabotenByEmail(String email); 19 20 @Transactional 21 @Modifying 22 @Query("UPDATE Vraboten v " + 23 "SET v.enabled = TRUE WHERE v.email = ?1") 24 int enableVraboten(String email); 13 25 } -
sources/app/src/main/java/parkup/services/AdministratorService.java
r3a58bd6 r9504a09 1 1 package parkup.services; 2 2 3 import java.time.LocalDateTime;4 3 import java.util.List; 5 4 import java.util.Objects; … … 14 13 import org.springframework.stereotype.Service; 15 14 import parkup.configs.email.EmailValidator; 16 import parkup.configs.token.ConfirmationToken;17 15 import parkup.configs.token.ConfirmationTokenService; 18 16 import parkup.entities.Administrator; … … 42 40 } 43 41 44 public voidaddAdministrator(Administrator administrator) {42 public Optional<Administrator> addAdministrator(Administrator administrator) { 45 43 Optional<Administrator> administratorOpt = this.administratorRepository.findAdministratorByEmail(administrator.getEmail()); 46 44 if (administratorOpt.isPresent()) { 47 45 throw new IllegalStateException("Email already taken, try adding an administrator with a different valid email address"); 48 46 } else { 49 System.out.println(administrator); 50 this.administratorRepository.save(administrator); 47 if (administrator.getEmail() != null && administrator.getEmail().length() > 1 && administrator.getEmail().contains("@")) { 48 //System.out.println(regPark); 49 this.administratorRepository.save(administrator); 50 } 51 else { 52 throw new IllegalStateException("email not valid"); 53 } 51 54 } 55 return administratorOpt; 52 56 } 53 57 54 58 @Transactional 55 public voidupdateAdministrator(int administratorId, String firstName, String lastName, String mobile, String email) {59 public Administrator updateAdministrator(int administratorId, String firstName, String lastName, String mobile, String email) { 56 60 Optional<Administrator> administratorOpt = Optional.ofNullable(this.administratorRepository.findByAdministratorId(administratorId)); 57 61 if (administratorOpt.isPresent()) { … … 62 66 throw new IllegalStateException("email taken"); 63 67 } 64 65 68 administratorNov.setEmail(email); 69 }else{ 70 throw new IllegalStateException("email not valid"); 66 71 } 67 72 … … 77 82 administratorNov.setMobile(mobile); 78 83 } 84 return administratorNov; 79 85 } 86 else { 87 throw new IllegalStateException("Administrator doesn't exist, therefore can't be updated"); 88 } 89 80 90 } 81 91 82 public voiddeleteAdministrator(int administratorId) {92 public Optional<Administrator> deleteAdministrator(int administratorId) { 83 93 Optional<Administrator> administratorOpt = Optional.ofNullable(this.administratorRepository.findByAdministratorId(administratorId)); 84 94 if (administratorOpt.isPresent()) { … … 87 97 throw new IllegalStateException("Administrator doesn't exist, therefore can't be deleted"); 88 98 } 99 return administratorOpt; 89 100 } 90 101 … … 126 137 127 138 String token = UUID.randomUUID().toString(); 128 ConfirmationToken confirmationToken = new ConfirmationToken(129 token,130 LocalDateTime.now(),131 LocalDateTime.now().plusMinutes(15),132 administrator133 );139 //ConfirmationTokenRP confirmationToken = new ConfirmationTokenRP( 140 // token, 141 // LocalDateTime.now(), 142 // LocalDateTime.now().plusMinutes(15), 143 // administrator 144 //); 134 145 135 confirmationTokenService.saveConfirmationToken(confirmationToken);146 //confirmationTokenService.saveConfirmationToken(confirmationToken); 136 147 137 148 // TODO: SEND EMAIL -
sources/app/src/main/java/parkup/services/ParkingSessionService.java
r3a58bd6 r9504a09 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 4 import org.springframework.stereotype.Service; 5 import parkup.data.Tablicka; 5 6 import parkup.entities.ParkingSession; 6 7 import parkup.repositories.ParkingSessionRepository; 7 8 9 import javax.transaction.Transactional; 8 10 import java.util.List; 9 11 import java.util.Objects; … … 28 30 } 29 31 30 public void updateParkingSession(int parkingSessionId, String timeStart, String timeEnd) { 32 @Transactional 33 public void updateParkingSession(int parkingSessionId, String timeStart, String timeEnd, Tablicka tablicka) { 31 34 Optional<ParkingSession> parkingSessionOpt = Optional.ofNullable(parkingSessionRepository.findByPssId(parkingSessionId)); 32 35 if (parkingSessionOpt.isPresent()) { 33 36 ParkingSession parkingSessionNov = parkingSessionRepository.findByPssId(parkingSessionId); 37 34 38 if(!parkingSessionNov.getTimeStart().equals(timeStart) && !parkingSessionNov.getTimeStart().equals(timeEnd)) 35 39 parkingSessionNov.setTimeStart(timeStart); … … 37 41 if(!parkingSessionNov.getTimeEnd().equals(timeEnd) && !parkingSessionNov.getTimeEnd().equals(timeStart)) 38 42 parkingSessionNov.setTimeEnd(timeEnd); 43 44 if(tablicka!=null && !Objects.equals(parkingSessionNov.getTablica(),tablicka)){ 45 parkingSessionNov.setTablica(tablicka); 46 } 47 }else{ 48 throw new IllegalStateException("The ParkingSession does not exist"); 39 49 } 40 50 } 41 51 42 public voiddeleteParkingSession(int parkingSessionId) {52 public Optional<ParkingSession> deleteParkingSession(int parkingSessionId) { 43 53 Optional<ParkingSession> parkingSessionOpt = Optional.ofNullable(parkingSessionRepository.findByPssId(parkingSessionId)); 44 54 if (parkingSessionOpt.isPresent()) { 45 55 parkingSessionRepository.deleteByPssId(parkingSessionId); 56 return parkingSessionOpt; 46 57 } else { 47 58 throw new IllegalStateException("ParkingSpace doesn't exist, therefore can't be deleted"); … … 49 60 } 50 61 51 public voidaddParkingSession(ParkingSession parkingSession) {52 Optional 62 public Optional<ParkingSession> addParkingSession(ParkingSession parkingSession) { 63 Optional<ParkingSession> parkingSessionOpt = Optional.ofNullable(parkingSessionRepository.findByPssId(parkingSession.getPssId())); 53 64 if (parkingSessionOpt.isPresent()) { 54 65 throw new IllegalStateException("ID already taken, ParkingSession cannot be added"); … … 56 67 System.out.println(parkingSession); 57 68 parkingSessionRepository.save(parkingSession); 69 return parkingSessionOpt; 58 70 } 59 71 } -
sources/app/src/main/java/parkup/services/ParkingSpaceService.java
r3a58bd6 r9504a09 6 6 import parkup.repositories.ParkingSpaceRepository; 7 7 8 import javax.transaction.Transactional; 8 9 import java.util.List; 9 10 import java.util.Objects; … … 28 29 } 29 30 30 public voidaddParkingSpace(ParkingSpace parkingSpace) {31 Optional 31 public Optional<ParkingSpace> addParkingSpace(ParkingSpace parkingSpace) { 32 Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsName(parkingSpace.getPsName())); 32 33 if (parkingSpaceOpt.isPresent()) { 33 34 throw new IllegalStateException("Name already taken, try adding a ParkingZone with a different name"); … … 36 37 parkingSpaceRepository.save(parkingSpace); 37 38 } 39 return parkingSpaceOpt; 38 40 } 39 41 40 public void updateParkingSpace(int parkingSpaceId, String psName, boolean taken, boolean handicaped) { 42 @Transactional 43 public ParkingSpace updateParkingSpace(int parkingSpaceId, String psName, boolean taken, boolean handicaped, float lat, float lng) { 41 44 Optional<ParkingSpace> ParkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId)); 42 45 if (ParkingSpaceOpt.isPresent()) { … … 58 61 ParkingSpaceNov.setHandicaped(handicaped); 59 62 } 63 64 if(lat!=0 && !Objects.equals(ParkingSpaceNov.getLat(), lat)){ 65 ParkingSpaceNov.setLat(lat); 66 } 67 68 if(lng!=0 && !Objects.equals(ParkingSpaceNov.getLng(), lng)){ 69 ParkingSpaceNov.setLng(lng); 70 } 71 return ParkingSpaceNov; 72 }else{ 73 throw new IllegalStateException("ParkingSpace does not exist"); 60 74 } 61 75 } 62 76 63 public void deleteParkingSpace(int parkingSpaceId) { 77 @Transactional 78 public Optional<ParkingSpace> deleteParkingSpace(int parkingSpaceId) { 64 79 Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId)); 65 80 if (parkingSpaceOpt.isPresent()) { … … 68 83 throw new IllegalStateException("ParkingSpace doesn't exist, therefore can't be deleted"); 69 84 } 85 return parkingSpaceOpt; 70 86 } 71 87 } -
sources/app/src/main/java/parkup/services/ParkingZoneService.java
r3a58bd6 r9504a09 2 2 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.data.jpa.repository.Modifying; 4 5 import org.springframework.stereotype.Service; 5 import parkup.entities.Administrator; 6 import parkup.data.ParkingZoneLocation; 7 import parkup.entities.ParkingSpace; 6 8 import parkup.entities.ParkingZone; 7 9 import parkup.repositories.ParkingZoneRepository; 8 10 9 11 import javax.transaction.Transactional; 12 import java.util.ArrayList; 10 13 import java.util.List; 11 14 import java.util.Objects; … … 30 33 } 31 34 32 public void addParkingZone(ParkingZone parkingZone) { //zavisno vo koj grad ili opstina i napravi proverki pred dodavanje, implementiraj u naredna faza 35 public List<String> getAllParkingZoneNames() { 36 List<ParkingZone> parkingZones = this.parkingZoneRepository.findAll(); 37 List<String> parkingZonesNames = new ArrayList<>(); 38 for (ParkingZone pz : parkingZones){ 39 parkingZonesNames.add(pz.getPzName()); 40 } 41 return parkingZonesNames; 42 } 43 44 public Optional<ParkingZone> addParkingZone(ParkingZone parkingZone) { //zavisno vo koj grad ili opstina i napravi proverki pred dodavanje, implementiraj u naredna faza 33 45 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzName(parkingZone.getPzName())); 34 46 if (parkingZoneOpt.isPresent()) { … … 38 50 parkingZoneRepository.save(parkingZone); 39 51 } 52 return parkingZoneOpt; 40 53 } 41 54 55 public ParkingZone addParkingZoneNameOnly(String name) { 56 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzName(name)); 57 if (parkingZoneOpt.isPresent()) { 58 throw new IllegalStateException("Name already taken, try adding a ParkingZone with a different name"); 59 } else { 60 ParkingZone parkingZone = new ParkingZone(name.trim()); 61 parkingZoneRepository.save(parkingZone); 62 return parkingZone; 63 } 64 } 65 66 //TODO prati niza od objekti ParkingSpaces i prati objekt ParkingZoneLocation 42 67 @Transactional 43 public void updateParkingZone(int parkingZoneId, String pzName, int price, int capacity, String workHours, String location) { 68 public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price, int capacity, 69 String location, int from, int to, String color, 70 List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation) { 44 71 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId)); 45 72 if (parkingZoneOpt.isPresent()) { … … 62 89 } 63 90 64 if (workHours != null && workHours.length() > 0 && !Objects.equals(parkingZoneNov.getWorkHours(), workHours)) {65 parkingZoneNov.setWorkHours(workHours);66 }67 68 91 if (location != null && location.length() > 0 && !Objects.equals(parkingZoneNov.getLocation(), location)) { 69 92 parkingZoneNov.setLocation(location); 70 93 } 94 95 if (from != 0 && !Objects.equals(parkingZoneNov.getFrom(), from)) { 96 parkingZoneNov.setFrom(from); 97 } 98 99 if (to != 0 && !Objects.equals(parkingZoneNov.getTo(), to)) { 100 parkingZoneNov.setTo(to); 101 } 102 103 if (color != null && color.length() > 0 && !Objects.equals(parkingZoneNov.getColor(), color)) { 104 parkingZoneNov.setColor(color); 105 } 106 107 if(parkingZoneLocation!=null){ 108 parkingZoneNov.setParkingZoneLocation(parkingZoneLocation); 109 } 110 111 if(!parkingSpaces.isEmpty()){ 112 //TODO kreiraj lista od parkingSpaces, ni gi prakja false isHandicaped i isTaken 113 parkingZoneNov.setParkingSpaces(parkingSpaces); 114 } 115 116 return parkingZoneNov; 117 } else { 118 throw new IllegalStateException("There ParkingZone does not exist"); 71 119 } 72 120 } 73 121 74 public void deleteParkingZone(int parkingZoneId) { 122 @Transactional 123 public Optional<ParkingZone> deleteParkingZone(int parkingZoneId) { 75 124 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId)); 76 125 if (parkingZoneOpt.isPresent()) { … … 79 128 throw new IllegalStateException("ParkingZone doesn't exist, therefore can't be deleted"); 80 129 } 130 return parkingZoneOpt; 81 131 } 82 132 } -
sources/app/src/main/java/parkup/services/RegistriranParkiracService.java
r3a58bd6 r9504a09 1 1 package parkup.services; 2 2 3 import java.time.LocalDateTime; 3 4 import java.util.List; 4 5 import java.util.Objects; 5 6 import java.util.Optional; 7 import java.util.UUID; 6 8 import javax.transaction.Transactional; 7 9 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.data.jpa.repository.Modifying; 11 import org.springframework.security.core.userdetails.UserDetails; 12 import org.springframework.security.core.userdetails.UserDetailsService; 13 import org.springframework.security.core.userdetails.UsernameNotFoundException; 14 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 8 15 import org.springframework.stereotype.Service; 16 import parkup.configs.email.EmailValidator; 17 import parkup.configs.token.ConfirmationTokenRP; 18 import parkup.configs.token.ConfirmationTokenService; 19 import parkup.data.Tablicka; 9 20 import parkup.entities.RegistriranParkirac; 10 21 import parkup.repositories.RegistriranParkiracRepository; 11 22 12 23 @Service 13 public class RegistriranParkiracService {24 public class RegistriranParkiracService implements UserDetailsService { 14 25 private final RegistriranParkiracRepository registriranParkiracRepository; 26 private final BCryptPasswordEncoder bCryptPasswordEncoder; 27 private final ConfirmationTokenService confirmationTokenService; 28 private EmailValidator emailValidator; 15 29 16 30 @Autowired 17 public RegistriranParkiracService(RegistriranParkiracRepository registriranParkiracRepository ) {31 public RegistriranParkiracService(RegistriranParkiracRepository registriranParkiracRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService) { 18 32 this.registriranParkiracRepository = registriranParkiracRepository; 33 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 34 this.confirmationTokenService = confirmationTokenService; 19 35 } 20 36 … … 23 39 } 24 40 25 public voidaddRegPark(RegistriranParkirac regPark) {41 public Optional<RegistriranParkirac> addRegPark(RegistriranParkirac regPark) { 26 42 Optional<RegistriranParkirac> regParkOpt = this.registriranParkiracRepository.findRegistriranParkiracByEmail(regPark.getEmail()); 27 43 if (regParkOpt.isPresent()) { 28 44 throw new IllegalStateException("Email already taken, try adding a registriranParkirac with a different valid email address"); 29 45 } else { 30 System.out.println(regPark); 31 this.registriranParkiracRepository.save(regPark); 46 if (regPark.getEmail() != null && regPark.getEmail().length() > 1 && regPark.getEmail().contains("@")) { 47 //System.out.println(regPark); 48 this.registriranParkiracRepository.save(regPark); 49 } 50 else { 51 throw new IllegalStateException("email not valid"); 52 } 32 53 } 54 return regParkOpt; 33 55 } 34 56 35 57 @Transactional 36 public void updateRegPark(int regParkId, String name, String surname, String mobile, String email) {58 public RegistriranParkirac updateRegPark(int regParkId, String name, String surname, String mobile, String email,List<Tablicka> regTablicki) { 37 59 Optional<RegistriranParkirac> regParkOpt = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId)); 38 60 if (regParkOpt.isPresent()) { … … 58 80 regParkNov.setMobile(mobile); 59 81 } 82 regParkNov.setRegTablicki(regTablicki); 83 return regParkNov; 84 }else{ 85 throw new IllegalStateException("RegistriranParkirac doesn't exist, therefore can't be updated"); 60 86 } 61 87 } 62 88 63 public void deleteRegPark(int regParkId) { 89 @Transactional 90 @Modifying 91 public Optional<RegistriranParkirac> deleteRegPark(int regParkId) { 64 92 Optional<RegistriranParkirac> regPark = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId)); 65 93 if (regPark.isPresent()) { 94 //TODO da povikamo metod od ConfirmationTokenService za brisenje na ConfirmationTokenRP *DONE 95 //TODO da se izbrisat tablicki i da ne se dupliraat istite tablicki pri update ili add na nov registriranParkirac 96 this.confirmationTokenService.deleteByRegistriranParkirac_RegParkId(regParkId); 66 97 this.registriranParkiracRepository.deleteByRegParkId(regParkId); 67 98 } else { 68 99 throw new IllegalStateException("RegistriranParkirac doesn't exist, therefore can't be deleted"); 69 100 } 101 return regPark; 70 102 } 71 103 … … 74 106 return regPark.orElse(null); 75 107 } 108 109 @Override 110 public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { 111 return registriranParkiracRepository.findRegistriranParkiracByEmail(email) 112 .orElseThrow(() -> 113 new UsernameNotFoundException("Email not found")); 114 115 } 116 117 public String signUpRegistriranParkirac(RegistriranParkirac registriranParkirac){ 118 boolean registriranParkiracExists = registriranParkiracRepository 119 .findRegistriranParkiracByEmail(registriranParkirac.getEmail()) 120 .isPresent(); 121 if(registriranParkiracExists){ 122 // TODO check if attributes are the same and 123 // TODO if email not confirmed send confirmation email 124 125 throw new IllegalStateException("Email already taken"); 126 } 127 128 String encodedPassword = bCryptPasswordEncoder 129 .encode(registriranParkirac.getPassword()); 130 131 registriranParkirac.setPassword(encodedPassword); 132 133 registriranParkiracRepository.save(registriranParkirac); 134 135 // TODO: Send confirmation token 136 137 String token = UUID.randomUUID().toString(); 138 ConfirmationTokenRP confirmationTokenRP = new ConfirmationTokenRP( 139 token, 140 LocalDateTime.now(), 141 LocalDateTime.now().plusMinutes(15), 142 registriranParkirac 143 ); 144 145 confirmationTokenService.saveConfirmationTokenRP(confirmationTokenRP); 146 147 // TODO: SEND EMAIL 148 149 return token; 150 } 151 152 public int enableRegistriranParkirac(String email) { 153 return registriranParkiracRepository.enableRegistriranParkirac(email); 154 } 76 155 } -
sources/app/src/main/java/parkup/services/VrabotenService.java
r3a58bd6 r9504a09 1 1 package parkup.services; 2 2 3 import java.util.List; 4 import java.util.Objects; 5 import java.util.Optional; 6 import java.util.UUID; 3 import java.time.LocalDateTime; 4 import java.util.*; 7 5 import javax.transaction.Transactional; 8 6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.data.jpa.repository.Modifying; 8 import org.springframework.security.core.userdetails.UserDetails; 9 import org.springframework.security.core.userdetails.UserDetailsService; 10 import org.springframework.security.core.userdetails.UsernameNotFoundException; 11 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 9 12 import org.springframework.stereotype.Service; 13 import parkup.configs.token.ConfirmationTokenW; 14 import parkup.configs.token.ConfirmationTokenService; 10 15 import parkup.entities.Vraboten; 11 16 import parkup.repositories.VrabotenRepository; 17 import parkup.data.VrabotenDemo; 12 18 13 19 @Service 14 public class VrabotenService {20 public class VrabotenService implements UserDetailsService { 15 21 private final VrabotenRepository vrabotenRepository; 22 private final BCryptPasswordEncoder bCryptPasswordEncoder; 23 private final ConfirmationTokenService confirmationTokenService; 16 24 17 25 @Autowired 18 public VrabotenService(VrabotenRepository vrabotenRepository ) {26 public VrabotenService(VrabotenRepository vrabotenRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService) { 19 27 this.vrabotenRepository = vrabotenRepository; 28 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 29 this.confirmationTokenService = confirmationTokenService; 20 30 } 21 31 … … 29 39 } 30 40 31 public void addVraboten(Vraboten vraboten) { 41 public List<VrabotenDemo> getAllVraboteniDemos() { 42 List<Vraboten> vraboteni = this.vrabotenRepository.findAll(); 43 List<VrabotenDemo> vrabotenDemos = new ArrayList<>(); 44 for (Vraboten v : vraboteni){ 45 VrabotenDemo vd = new VrabotenDemo(v.getFirstName(), v.getLastName(), v.getEmail()); 46 vrabotenDemos.add(vd); 47 } 48 return vrabotenDemos; 49 } 50 51 public Optional<Vraboten> addVraboten(Vraboten vraboten) { 32 52 Optional<Vraboten> vrabotenOpt = this.vrabotenRepository.findVrabotenByEmail(vraboten.getEmail()); 33 53 if (vrabotenOpt.isPresent()) { 34 54 throw new IllegalStateException("Email already taken, try adding a vraboten with a different valid email address"); 35 55 } else { 36 System.out.println(vraboten); 37 this.vrabotenRepository.save(vraboten); 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 } 38 63 } 64 return vrabotenOpt; 39 65 } 40 66 41 67 @Transactional 42 public void updateVraboten(int vrabotenId, String firstName, String lastName, String mobile, String email) {68 public Vraboten updateVraboten(int vrabotenId, String firstName, String lastName, String mobile, String email, String status) { 43 69 Optional<Vraboten> vrabotenOpt = Optional.ofNullable(this.vrabotenRepository.findByVrabotenId(vrabotenId)); 44 70 if (vrabotenOpt.isPresent()) { … … 49 75 throw new IllegalStateException("email taken"); 50 76 } 51 52 77 vrabotenNov.setEmail(email); 78 } else { 79 throw new IllegalStateException("email not valid"); 53 80 } 54 81 … … 64 91 vrabotenNov.setMobile(mobile); 65 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'"); 99 } 100 } 101 102 return vrabotenNov; 66 103 } 67 } 104 else{ 105 throw new IllegalStateException("Vraboten doesn't exist, therefore can't be updated"); 106 } 107 }//za menjanje password da se implementira 68 108 69 public void deleteVraboten(int vrabotenId) { 109 @Modifying 110 @Transactional 111 public Optional<Vraboten> deleteVraboten(int vrabotenId) { 70 112 Optional<Vraboten> vrabotenOpt = Optional.ofNullable(this.vrabotenRepository.findByVrabotenId(vrabotenId)); 71 113 if (vrabotenOpt.isPresent()) { 114 //TODO da povikamo metod od ConfirmationTokenService za brisenje na ConfirmationTokenW 115 this.confirmationTokenService.deleteByVraboten_VrabotenId(vrabotenId); 72 116 this.vrabotenRepository.deleteByVrabotenId(vrabotenId); 73 117 } else { 74 118 throw new IllegalStateException("Vraboten doesn't exist, therefore can't be deleted"); 75 119 } 120 return vrabotenOpt; 76 121 } 122 123 @Transactional 124 public void lockVrabotenAcc(int vrabotenId) { 125 Vraboten vrabotenOpt = this.vrabotenRepository.findByVrabotenId(vrabotenId); 126 if (vrabotenOpt!=null) { 127 vrabotenOpt.lockVraboten(); 128 } else { 129 throw new IllegalStateException("Vraboten doesn't exist, therefore his account can't be locked/unlocked"); 130 } 131 }//dali treba da stoi @Transactional gore nad funkcijata? 132 133 @Override 134 public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { 135 return vrabotenRepository.findVrabotenByEmail(email) 136 .orElseThrow(() -> 137 new UsernameNotFoundException("Email not found")); 138 } 139 public String signUpVraboten(Vraboten vraboten){ 140 boolean vrabotenExists = vrabotenRepository 141 .findVrabotenByEmail(vraboten.getEmail()) 142 .isPresent(); 143 if(vrabotenExists){ 144 // TODO check if attributes are the same and 145 // TODO if email not confirmed send confirmation email 146 147 throw new IllegalStateException("Email already taken"); 148 } 149 150 String encodedPassword = bCryptPasswordEncoder 151 .encode(vraboten.getPassword()); 152 153 vraboten.setPassword(encodedPassword); 154 155 vrabotenRepository.save(vraboten); 156 157 // TODO: Send confirmation token 158 159 String token = UUID.randomUUID().toString(); 160 ConfirmationTokenW confirmationTokenW = new ConfirmationTokenW( 161 token, 162 LocalDateTime.now(), 163 LocalDateTime.now().plusMinutes(15), 164 vraboten 165 ); 166 167 confirmationTokenService.saveConfirmationTokenW(confirmationTokenW); 168 169 // TODO: SEND EMAIL 170 171 return token; 172 } 173 174 public int enableVraboten(String email) { 175 return vrabotenRepository.enableVraboten(email); 176 } 177 77 178 }
Note:
See TracChangeset
for help on using the changeset viewer.