Changeset 97fbc67 for sources/app/src/main/java/parkup
- Timestamp:
- 11/11/21 11:55:43 (3 years ago)
- Branches:
- master
- Children:
- 2ace8f0
- Parents:
- 3a58bd6
- Location:
- sources/app/src/main/java/parkup
- Files:
-
- 6 added
- 1 deleted
- 25 edited
- 3 moved
Legend:
- Unmodified
- Added
- Removed
-
sources/app/src/main/java/parkup/configs/RegistrationRequest.java
r3a58bd6 r97fbc67 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/RegistrationServiceW.java
r3a58bd6 r97fbc67 5 5 import parkup.configs.email.EmailSender; 6 6 import parkup.configs.email.EmailValidator; 7 import parkup.configs.token.ConfirmationToken ;7 import parkup.configs.token.ConfirmationTokenW; 8 8 import parkup.configs.token.ConfirmationTokenService; 9 import parkup.entities. Administrator;10 import parkup.services. AdministratorService;9 import parkup.entities.Vraboten; 10 import parkup.services.VrabotenService; 11 11 12 12 import javax.transaction.Transactional; … … 14 14 15 15 @Service 16 public class RegistrationService {17 private final AdministratorService administratorService;16 public class RegistrationServiceW { 17 private final VrabotenService vrabotenService; 18 18 private final EmailValidator emailValidator; 19 19 private final ConfirmationTokenService confirmationTokenService; … … 21 21 22 22 @Autowired 23 public RegistrationService (AdministratorService administratorService, EmailValidator emailValidator,24 ConfirmationTokenService confirmationTokenService, EmailSender emailSender) {25 this. administratorService = administratorService;23 public RegistrationServiceW(VrabotenService vrabotenService, EmailValidator emailValidator, 24 ConfirmationTokenService confirmationTokenService, EmailSender emailSender) { 25 this.vrabotenService = vrabotenService; 26 26 this.emailValidator = emailValidator; 27 27 this.confirmationTokenService = confirmationTokenService; … … 37 37 } 38 38 39 String token = administratorService.signUpAdministrator(40 new Administrator(39 String token = vrabotenService.signUpVraboten( 40 new Vraboten( 41 41 request.getFirstName(), 42 42 request.getLastName(), 43 43 request.getEmail(), 44 request.getPassword() 44 request.getPassword(), 45 request.getMobile() 45 46 ) 46 47 ); 47 48 48 String link = "http://localhost:8080/ administrator/registration/confirm?token=" + token;49 String link = "http://localhost:8080/vraboten/registration/confirm?token=" + token; 49 50 emailSender.send( 50 51 request.getEmail(), … … 56 57 @Transactional 57 58 public String confirmToken(String token) { 58 ConfirmationToken confirmationToken= confirmationTokenService59 .getToken (token)59 ConfirmationTokenW confirmationTokenW = confirmationTokenService 60 .getTokenW(token) 60 61 .orElseThrow(() -> 61 62 new IllegalStateException("token not found")); 62 63 63 if (confirmationToken .getConfirmedAt() != null) {64 if (confirmationTokenW.getConfirmedAt() != null) { 64 65 throw new IllegalStateException("email already confirmed"); 65 66 } 66 67 67 LocalDateTime expiredAt = confirmationToken .getExpiresAt();68 LocalDateTime expiredAt = confirmationTokenW.getExpiresAt(); 68 69 69 70 if (expiredAt.isBefore(LocalDateTime.now())) { … … 71 72 } 72 73 73 confirmationTokenService.setConfirmedAt (token);74 confirmationTokenService.setConfirmedAtW(token); 74 75 75 administratorService.enableAdministrator(confirmationToken.getAdministrator().getEmail());76 vrabotenService.enableVraboten(confirmationTokenW.getRegistriranParkirac().getEmail()); 76 77 return "confirmed"; 77 78 } -
sources/app/src/main/java/parkup/configs/WebSecurityConfig.java
r3a58bd6 r97fbc67 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/ConfirmationTokenRepositoryW.java
r3a58bd6 r97fbc67 11 11 12 12 @Repository 13 public interface ConfirmationTokenRepository extends JpaRepository<ConfirmationToken,Integer> {13 public interface ConfirmationTokenRepositoryW extends JpaRepository<ConfirmationTokenW,Integer> { 14 14 15 Optional<ConfirmationToken> findByToken(String token); 15 Optional<ConfirmationTokenW> findByToken(String token); 16 17 void deleteByVraboten_VrabotenId(int vraboten_id); 16 18 17 19 @Transactional 18 20 @Modifying 19 @Query("UPDATE ConfirmationToken c " +21 @Query("UPDATE ConfirmationTokenW c " + 20 22 "SET c.confirmedAt = ?2 " + 21 23 "WHERE c.token = ?1") -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java
r3a58bd6 r97fbc67 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, parkup.configs.token.ConfirmationTokenRepositoryW confirmationTokenRepositoryW1) { 15 this.confirmationTokenRepositoryRP = confirmationTokenRepositoryRP; 16 this.confirmationTokenRepositoryW = confirmationTokenRepositoryW1; 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/configs/token/ConfirmationTokenW.java
r3a58bd6 r97fbc67 1 1 package parkup.configs.token; 2 2 3 import parkup.entities. Administrator;3 import parkup.entities.Vraboten; 4 4 5 5 import javax.persistence.*; … … 7 7 8 8 @Entity 9 public class ConfirmationToken {9 public class ConfirmationTokenW { 10 10 11 11 @Id 12 12 @Column(name = "confirmation_token_id") 13 13 @SequenceGenerator( 14 name="confirmation_token_ generator",15 sequenceName = "confirmation_token_sequence ",14 name="confirmation_token_sequence_generator_W", 15 sequenceName = "confirmation_token_sequence_W", 16 16 allocationSize = 1, 17 initialValue = 90017 initialValue = 1200 18 18 ) 19 19 @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e 20 20 strategy = GenerationType.SEQUENCE, 21 generator = "confirmation_token_sequence_generator "21 generator = "confirmation_token_sequence_generator_W" 22 22 ) 23 23 private int id; … … 34 34 private LocalDateTime confirmedAt; 35 35 36 @ManyToOne 37 @JoinColumn(nullable = false, name = " administrator_id")38 //many confirmation tokens to one administrator39 private Administrator administrator;36 @ManyToOne(cascade = {CascadeType.ALL}) 37 @JoinColumn(nullable = false, name = "vraboten_id") 38 //many confirmation tokens to one registriranParkirac 39 private Vraboten vraboten; 40 40 41 public ConfirmationToken () {}41 public ConfirmationTokenW() {} 42 42 43 public ConfirmationToken (int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, Administrator administrator) {43 public ConfirmationTokenW(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, Vraboten vraboten) { 44 44 this.id = id; 45 45 this.token = token; 46 46 this.createdAt = createdAt; 47 47 this.expiresAt = expiresAt; 48 this. administrator = administrator;48 this.vraboten = vraboten; 49 49 } 50 50 51 public ConfirmationToken (String token, LocalDateTime createdAt, LocalDateTime expiresAt, Administrator administrator) {51 public ConfirmationTokenW(String token, LocalDateTime createdAt, LocalDateTime expiresAt, Vraboten vraboten) { 52 52 this.token = token; 53 53 this.createdAt = createdAt; 54 54 this.expiresAt = expiresAt; 55 this. administrator = administrator;55 this.vraboten = vraboten; 56 56 } 57 57 … … 96 96 } 97 97 98 public Administrator getAdministrator() {99 return administrator;98 public Vraboten getRegistriranParkirac() { 99 return vraboten; 100 100 } 101 101 102 public void set Administrator(Administrator administrator) {103 this. administrator = administrator;102 public void setRegistriranParkirac(Vraboten vraboten) { 103 this.vraboten = vraboten; 104 104 } 105 105 } -
sources/app/src/main/java/parkup/controllers/AdministratorController.java
r3a58bd6 r97fbc67 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 r97fbc67 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 r97fbc67 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 //System.out.println("???????");37 parkingSpaceService.addParkingSpace(parkingSpace);36 public Optional<ParkingSpace> addParkingSpace(@RequestBody ParkingSpace parkingSpace) { 37 System.out.println("???????"); 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 r97fbc67 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(),parkingZone.getOdgovorniLica()); 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 r97fbc67 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 r97fbc67 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 r97fbc67 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 r97fbc67 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 r97fbc67 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 … … 24 24 25 25 @Column(name = "isTaken") 26 private boolean isTaken;26 private Boolean isTaken; 27 27 28 28 @Column(name = "isHandicaped") 29 private boolean isHandicaped;29 private Boolean isHandicaped; 30 30 31 public ParkingSpace() {} 31 @Column(name = "latitude") 32 private float lat; 32 33 33 public ParkingSpace(int psId, String psName, boolean isTaken, boolean isHandicaped) { 34 @Column(name = "longitude") 35 private float lng; 36 37 // @OneToOne(cascade = {CascadeType.ALL}) 38 // @JoinColumn(name = "parking_zona") 39 // private ParkingZone parkingZone; 40 41 public ParkingSpace() { 42 System.out.println("Default ParkingSpace constructor" + lat); 43 } 44 45 public ParkingSpace(int psId, String psName, boolean isTaken, boolean isHandicaped, float lat, float lng) { 34 46 this.psId = psId; 35 47 this.psName = psName; 36 48 this.isTaken = isTaken; 37 49 this.isHandicaped = isHandicaped; 50 this.lat = lat; 51 this.lng = lng; 38 52 } 39 53 40 public ParkingSpace(String psName, boolean isTaken, boolean isHandicaped ) {54 public ParkingSpace(String psName, boolean isTaken, boolean isHandicaped, float lat, float lng) { 41 55 this.psName = psName; 42 56 this.isTaken = isTaken; 43 57 this.isHandicaped = isHandicaped; 58 this.lat = lat; 59 this.lng = lng; 44 60 } 45 61 … … 75 91 this.isHandicaped = isHandicaped; 76 92 } 93 94 public float getLat() { 95 return lat; 96 } 97 98 public void setLat(float lat) { 99 this.lat = lat; 100 } 101 102 public float getLng() { 103 return lng; 104 } 105 106 public void setLng(float lng) { 107 this.lng = lng; 108 } 109 110 @Override 111 public String toString() { 112 return "ParkingSpace{" + 113 "psName='" + psName + '\'' + 114 ", isTaken=" + isTaken + 115 ", isHandicaped=" + isHandicaped + 116 ", lat=" + lat + 117 ", lng=" + lng+ 118 '}'; 119 } 77 120 } 78 121 -
sources/app/src/main/java/parkup/entities/ParkingZone.java
r3a58bd6 r97fbc67 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 = "time_from") //za rabotni casovi od: 36 private int from; 35 37 36 @Column(name = "location") 38 @Column(name = "time_to") //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 r97fbc67 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 r97fbc67 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( … … 24 27 private int vrabotenId; 25 28 29 @Override 30 public String toString() { 31 return "Vraboten{" + 32 "firstName='" + firstName + '\'' + 33 ", lastName='" + lastName + '\'' + 34 ", parkingZones=" + parkingZones + 35 ", locked=" + locked + 36 ", enabled=" + enabled + 37 '}'; 38 } 39 26 40 @Column(name = "firstName") 27 41 private String firstName; … … 49 63 private String status; 50 64 51 @Column(name = "account") 52 private boolean account; 65 @Column(name="locked") 66 private boolean locked; 67 68 @Column(name = "enabled") 69 private boolean enabled; 70 53 71 54 72 public Vraboten() { 55 73 this.role = "ROLE_VRABOTEN"; 56 74 this.parkingZones = new ArrayList<ParkingZone>(); 57 this. account = true;75 this.enabled = false; 58 76 this.status = "neRaboti"; 59 77 } … … 68 86 this.parkingZones = parkingZones; 69 87 this.role = "ROLE_VRABOTEN"; 70 this. account = true;88 this.enabled = false; 71 89 this.status = "neRaboti"; 72 90 } … … 80 98 this.parkingZones = parkingZones; 81 99 this.role = "ROLE_VRABOTEN"; 82 this. account = true;100 this.enabled = false; 83 101 this.status = "neRaboti"; 102 } 103 104 public Vraboten(String firstName, String lastName, String email, String password, String mobile) { 105 this.firstName=firstName; 106 this.lastName=lastName; 107 this.email=email; 108 this.password=password; 109 this.mobile=mobile; 110 this.parkingZones=new ArrayList<>(); 111 this.enabled=false; 112 this.status="neRaboti"; 113 this.role="ROLE_VRABOTEN"; 84 114 } 85 115 … … 116 146 } 117 147 148 @Override 149 public Collection<? extends GrantedAuthority> getAuthorities() { 150 return null; 151 } 152 118 153 public String getPassword() { 119 154 return password; 120 155 } 121 156 157 @Override 158 public String getUsername() { 159 return email; 160 } 161 162 @Override 163 public boolean isAccountNonExpired() { 164 return true; 165 } 166 167 @Override 168 public boolean isAccountNonLocked() { 169 return !locked; 170 } 171 172 public void lockVraboten(){ 173 this.locked = !locked; 174 } 175 176 @Override 177 public boolean isCredentialsNonExpired() { 178 return true; 179 } 180 181 @Override 182 public boolean isEnabled() { 183 return enabled; 184 } 185 122 186 public void setPassword(String password) { 123 187 this.password = password; … … 144 208 public void setStatus(String status) {this.status = status;} 145 209 146 public boolean isAccount() {return account;}147 148 public void setAccount(boolean account) {this. account= account;}210 public boolean isAccount() {return enabled;} 211 212 public void setAccount(boolean account) {this.enabled = account;} 149 213 } -
sources/app/src/main/java/parkup/repositories/GuestRepository.java
r3a58bd6 r97fbc67 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 r97fbc67 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 r97fbc67 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 r97fbc67 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 r97fbc67 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 r97fbc67 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 r97fbc67 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 r97fbc67 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; 9 import parkup.entities.Vraboten; 7 10 import parkup.repositories.ParkingZoneRepository; 8 11 9 12 import javax.transaction.Transactional; 13 import java.util.ArrayList; 10 14 import java.util.List; 11 15 import java.util.Objects; … … 30 34 } 31 35 32 public void addParkingZone(ParkingZone parkingZone) { //zavisno vo koj grad ili opstina i napravi proverki pred dodavanje, implementiraj u naredna faza 36 public List<String> getAllParkingZoneNames() { 37 List<ParkingZone> parkingZones = this.parkingZoneRepository.findAll(); 38 List<String> parkingZonesNames = new ArrayList<>(); 39 for (ParkingZone pz : parkingZones){ 40 parkingZonesNames.add(pz.getPzName()); 41 } 42 return parkingZonesNames; 43 } 44 45 public Optional<ParkingZone> addParkingZone(ParkingZone parkingZone) { //zavisno vo koj grad ili opstina i napravi proverki pred dodavanje, implementiraj u naredna faza 33 46 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzName(parkingZone.getPzName())); 34 47 if (parkingZoneOpt.isPresent()) { … … 38 51 parkingZoneRepository.save(parkingZone); 39 52 } 53 return parkingZoneOpt; 40 54 } 41 55 56 public ParkingZone addParkingZoneNameOnly(String name) { 57 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzName(name)); 58 if (parkingZoneOpt.isPresent()) { 59 throw new IllegalStateException("Name already taken, try adding a ParkingZone with a different name"); 60 } else { 61 ParkingZone parkingZone = new ParkingZone(name.trim()); 62 parkingZoneRepository.save(parkingZone); 63 return parkingZone; 64 } 65 } 66 67 //TODO proveri dali ima odgovorni i dokolku ima dali postojat vo bazata 42 68 @Transactional 43 public void updateParkingZone(int parkingZoneId, String pzName, int price, int capacity, String workHours, String location) { 69 public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price, int capacity, 70 String location, int from, int to, String color, 71 List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Vraboten> odgovorniLica) { 72 73 for(ParkingSpace space:parkingSpaces){ 74 System.out.println(space); 75 } 76 for(Vraboten v : odgovorniLica){ 77 System.out.println(v.toString()); 78 } 44 79 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId)); 45 80 if (parkingZoneOpt.isPresent()) { … … 62 97 } 63 98 64 if (workHours != null && workHours.length() > 0 && !Objects.equals(parkingZoneNov.getWorkHours(), workHours)) {65 parkingZoneNov.setWorkHours(workHours);66 }67 68 99 if (location != null && location.length() > 0 && !Objects.equals(parkingZoneNov.getLocation(), location)) { 69 100 parkingZoneNov.setLocation(location); 70 101 } 102 103 if (from != 0 && !Objects.equals(parkingZoneNov.getFrom(), from)) { 104 parkingZoneNov.setFrom(from); 105 } 106 107 if (to != 0 && !Objects.equals(parkingZoneNov.getTo(), to)) { 108 parkingZoneNov.setTo(to); 109 } 110 111 if (color != null && color.length() > 0 && !Objects.equals(parkingZoneNov.getColor(), color)) { 112 parkingZoneNov.setColor(color); 113 } 114 115 if(parkingZoneLocation!=null){ 116 parkingZoneNov.setParkingZoneLocation(parkingZoneLocation); 117 } 118 119 if(!parkingSpaces.isEmpty()){ 120 //TODO kreiraj lista od parkingSpaces, ni gi prakja false isHandicaped i isTaken 121 parkingZoneNov.setParkingSpaces(parkingSpaces); 122 } 123 if(!odgovorniLica.isEmpty()){ 124 125 parkingZoneNov.setOdgovorniLica(odgovorniLica); 126 } 127 128 return parkingZoneNov; 129 } else { 130 throw new IllegalStateException("There ParkingZone does not exist"); 71 131 } 72 132 } 73 133 74 public void deleteParkingZone(int parkingZoneId) { 134 @Transactional 135 public Optional<ParkingZone> deleteParkingZone(int parkingZoneId) { 75 136 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId)); 76 137 if (parkingZoneOpt.isPresent()) { … … 79 140 throw new IllegalStateException("ParkingZone doesn't exist, therefore can't be deleted"); 80 141 } 142 return parkingZoneOpt; 81 143 } 82 144 } -
sources/app/src/main/java/parkup/services/RegistriranParkiracService.java
r3a58bd6 r97fbc67 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 r97fbc67 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.