Changeset 9dd526f


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

backend refactoring

Location:
sources
Files:
28 added
19 deleted
48 edited
9 moved

Legend:

Unmodified
Added
Removed
  • sources/app/ParkUp.iml

    r9ff45d6 r9dd526f  
    7777    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.5" level="project" />
    7878    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.5" level="project" />
    79     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
    80     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
    81     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
    8279    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
    8380    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" level="project" />
     
    153150    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.11.1" level="project" />
    154151    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-mail:2.4.5" level="project" />
     152    <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.18.3" level="project" />
     153    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
     154    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
     155    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
    155156    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.8.RELEASE" level="project" />
    156157    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.6" level="project" />
  • sources/app/pom.xml

    r9ff45d6 r9dd526f  
    9797        </dependency>
    9898
    99         <dependency>
    100             <groupId>org.springframework.boot</groupId>
    101             <artifactId>spring-boot-starter-security</artifactId>
    102         </dependency>
    10399
    104100        <dependency>
    105101            <groupId>org.springframework.boot</groupId>
    106102            <artifactId>spring-boot-starter-mail</artifactId>
     103        </dependency>
     104
     105        <dependency>
     106            <groupId>com.auth0</groupId>
     107            <artifactId>java-jwt</artifactId>
     108            <version>3.18.3</version>
    107109        </dependency>
    108110
  • sources/app/src/main/java/parkup/configs/RegistrationServiceRP.java

    r9ff45d6 r9dd526f  
    33import org.springframework.beans.factory.annotation.Autowired;
    44import org.springframework.stereotype.Service;
    5 import parkup.configs.email.EmailSender;
     5import parkup.configs.email.EmailService;
    66import parkup.configs.email.EmailValidator;
     7import parkup.configs.email.Mail;
    78import parkup.configs.token.ConfirmationTokenRP;
    89import parkup.configs.token.ConfirmationTokenService;
    9 import parkup.entities.RegistriranParkirac;
    10 import parkup.services.RegistriranParkiracService;
     10import parkup.entities.RegisteredUser;
     11import parkup.services.RegisteredUserService;
    1112
    1213import javax.transaction.Transactional;
     
    1516@Service
    1617public class RegistrationServiceRP {
    17     private final RegistriranParkiracService registriranParkiracService;
     18    private final RegisteredUserService registeredUserService;
    1819    private final EmailValidator emailValidator;
    1920    private final ConfirmationTokenService confirmationTokenService;
    20     private final EmailSender emailSender;
     21    private final EmailService emailService;
    2122
    2223    @Autowired
    23     public RegistrationServiceRP(RegistriranParkiracService registriranParkiracService, EmailValidator emailValidator,
    24                                  ConfirmationTokenService confirmationTokenService, EmailSender emailSender) {
    25         this.registriranParkiracService = registriranParkiracService;
     24    public RegistrationServiceRP(RegisteredUserService registeredUserService, EmailValidator emailValidator,
     25                                 ConfirmationTokenService confirmationTokenService, EmailService emailService) {
     26        this.registeredUserService = registeredUserService;
    2627        this.emailValidator = emailValidator;
    2728        this.confirmationTokenService = confirmationTokenService;
    28         this.emailSender = emailSender;
     29        this.emailService = emailService;
    2930    }
    3031
    3132    public String register(RegistrationRequest request) {
     33        if (request.getEmail() == null || request.getEmail().isEmpty())
     34            throw new IllegalArgumentException("Missing email");
    3235        boolean isValidEmail = emailValidator.
    3336                test(request.getEmail());
     
    3740        }
    3841
    39         String token = registriranParkiracService.signUpRegistriranParkirac(
    40                 new RegistriranParkirac(
     42        String token = registeredUserService.signUpRegistriranParkirac(
     43                new RegisteredUser(
    4144                        request.getFirstName(),
    4245                        request.getLastName(),
     
    4851
    4952        String link = "http://localhost:8080/registriranParkirac/registration/confirm?token=" + token;
    50         emailSender.send(
    51                 request.getEmail(),
    52                 buildEmail(request.getFirstName(), link));
    53 
     53        Mail mail = new Mail();
     54        mail.setMailTo(request.getEmail());
     55        mail.setMailFrom("noreply_explore_buddy@gmail.com");
     56        mail.setMailSubject("Account confirmation");
     57        mail.setMailContent(buildEmail(request.getEmail(), link));
     58        emailService.sendEmail(mail);
    5459        return token;
    5560    }
     
    7479        confirmationTokenService.setConfirmedAtRP(token);
    7580
    76         registriranParkiracService.enableRegistriranParkirac(confirmationTokenRP.getRegistriranParkirac().getEmail());
     81        registeredUserService.enableRegistriranParkirac(confirmationTokenRP.getRegistriranParkirac().getEmail());
    7782        return "confirmed";
    7883    }
  • sources/app/src/main/java/parkup/configs/email/EmailService.java

    r9ff45d6 r9dd526f  
    11package parkup.configs.email;
    22
    3 import org.slf4j.Logger;
    4 import org.slf4j.LoggerFactory;
     3import org.springframework.beans.factory.annotation.Autowired;
    54import org.springframework.mail.javamail.JavaMailSender;
    65import org.springframework.mail.javamail.MimeMessageHelper;
    7 import org.springframework.scheduling.annotation.Async;
    86import org.springframework.stereotype.Service;
    97
    108import javax.mail.MessagingException;
     9import javax.mail.internet.InternetAddress;
    1110import javax.mail.internet.MimeMessage;
     11import java.io.UnsupportedEncodingException;
    1212
    13 @Service
    14 public class EmailService implements EmailSender{
     13@Service("mailService")
     14public class EmailService implements MailService {
    1515
    16     private final static Logger LOGGER = LoggerFactory.getLogger(EmailService.class);
    17     private final JavaMailSender mailSender;
     16    @Autowired
     17    JavaMailSender mailSender;
    1818
    19     public EmailService(JavaMailSender mailSender) {
    20         this.mailSender = mailSender;
     19    public void sendEmail(Mail mail) {
     20        MimeMessage mimeMessage = mailSender.createMimeMessage();
     21
     22        try {
     23
     24            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
     25
     26            mimeMessageHelper.setSubject(mail.getMailSubject());
     27            mimeMessageHelper.setFrom(new InternetAddress(mail.getMailFrom(), "parkUp.com"));
     28            mimeMessageHelper.setTo(mail.getMailTo());
     29            mimeMessageHelper.setText(mail.getMailContent(), true);
     30
     31            mailSender.send(mimeMessageHelper.getMimeMessage());
     32
     33        } catch (MessagingException | UnsupportedEncodingException e) {
     34            e.printStackTrace();
     35        }
    2136    }
    2237
    23     @Override
    24     @Async
    25     public void send(String to, String email) {
    26         try {
    27             MimeMessage mimeMessage = mailSender.createMimeMessage();
    28             MimeMessageHelper helper =
    29                     new MimeMessageHelper(mimeMessage, "utf-8");
    30             helper.setText(email, true);
    31             helper.setTo(to);
    32             helper.setSubject("Confirm your email");
    33             helper.setFrom("parkup@gmail.com");
    34             mailSender.send(mimeMessage);
    35         } catch (MessagingException e) {
    36             LOGGER.error("failed to send email", e);
    37             throw new IllegalStateException("failed to send email");
    38         }
    39     }
    4038}
    41 
  • sources/app/src/main/java/parkup/configs/email/EmailValidator.java

    r9ff45d6 r9dd526f  
    11package parkup.configs.email;
     2
    23
    34import org.springframework.stereotype.Service;
    45
    56import java.util.function.Predicate;
     7import java.util.regex.Pattern;
    68
    79@Service
     
    911    @Override
    1012    public boolean test(String s) {
    11         //todo
    12         return true;
     13        String regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$";
     14        return Pattern.compile(regexPattern).matcher(s).matches();
    1315    }
    1416}
  • sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRP.java

    r9ff45d6 r9dd526f  
    11package parkup.configs.token;
    22
    3 import parkup.entities.RegistriranParkirac;
     3import parkup.entities.RegisteredUser;
    44
    55import javax.persistence.*;
     
    3737    @JoinColumn(nullable = false, name = "registriranParkirac_id")
    3838    //many confirmation tokens to one registriranParkirac
    39     private RegistriranParkirac registriranParkirac;
     39    private RegisteredUser registeredUser;
    4040
    4141    public ConfirmationTokenRP() {}
    4242
    43     public ConfirmationTokenRP(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegistriranParkirac registriranParkirac) {
     43    public ConfirmationTokenRP(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegisteredUser registeredUser) {
    4444        this.id = id;
    4545        this.token = token;
    4646        this.createdAt = createdAt;
    4747        this.expiresAt = expiresAt;
    48         this.registriranParkirac = registriranParkirac;
     48        this.registeredUser = registeredUser;
    4949    }
    5050
    51     public ConfirmationTokenRP(String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegistriranParkirac registriranParkirac) {
     51    public ConfirmationTokenRP(String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegisteredUser registeredUser) {
    5252        this.token = token;
    5353        this.createdAt = createdAt;
    5454        this.expiresAt = expiresAt;
    55         this.registriranParkirac = registriranParkirac;
     55        this.registeredUser = registeredUser;
    5656    }
    5757
     
    9696    }
    9797
    98     public RegistriranParkirac getRegistriranParkirac() {
    99         return registriranParkirac;
     98    public RegisteredUser getRegistriranParkirac() {
     99        return registeredUser;
    100100    }
    101101
    102     public void setRegistriranParkirac(RegistriranParkirac registriranParkirac) {
    103         this.registriranParkirac = registriranParkirac;
     102    public void setRegistriranParkirac(RegisteredUser registeredUser) {
     103        this.registeredUser = registeredUser;
    104104    }
    105105}
  • sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryRP.java

    r9ff45d6 r9dd526f  
    1515    Optional<ConfirmationTokenRP> findByToken(String token);
    1616
    17     void deleteByRegistriranParkirac_RegParkId(int regParkId);
     17    void deleteByRegisteredUser_RegParkId(int regParkId);
    1818
    1919    @Transactional
  • sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java

    r9ff45d6 r9dd526f  
    1010
    1111    private final ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP;
    12     private final ConfirmationTokenRepositoryW confirmationTokenRepositoryW;
    1312
    1413
    15     public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP, ConfirmationTokenRepositoryW confirmationTokenRepositoryW, parkup.configs.token.ConfirmationTokenRepositoryW confirmationTokenRepositoryW1) {
     14    public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP) {
    1615        this.confirmationTokenRepositoryRP = confirmationTokenRepositoryRP;
    17         this.confirmationTokenRepositoryW = confirmationTokenRepositoryW1;
    1816    }
    1917    public void saveConfirmationTokenRP(ConfirmationTokenRP token){
     
    2119    }
    2220
    23     public void saveConfirmationTokenW(ConfirmationTokenW token){
    24         confirmationTokenRepositoryW.save(token);}
    2521
    2622    public Optional<ConfirmationTokenRP> getTokenRP(String token) {
    2723        return confirmationTokenRepositoryRP.findByToken(token);
    2824    }
    29     public Optional<ConfirmationTokenW> getTokenW(String token){
    30         return confirmationTokenRepositoryW.findByToken(token);
    31     }
    3225
    33     public void deleteByVraboten_VrabotenId(int vraboten_id){
    34         confirmationTokenRepositoryW.deleteByVraboten_VrabotenId(vraboten_id);
    35     }
    36 
    37     public void deleteByRegistriranParkirac_RegParkId(int regParkId){
    38         confirmationTokenRepositoryRP.deleteByRegistriranParkirac_RegParkId(regParkId);
     26    public void deleteByRegisteredUser_RegParkId(int regParkId){
     27        confirmationTokenRepositoryRP.deleteByRegisteredUser_RegParkId(regParkId);
    3928    }
    4029
     
    4231        return confirmationTokenRepositoryRP.updateConfirmedAt(token, LocalDateTime.now());
    4332    }
    44     public int setConfirmedAtW(String token){
    45         return confirmationTokenRepositoryW.updateConfirmedAt(token,LocalDateTime.now());
    46     }
    4733}
  • sources/app/src/main/java/parkup/configs/webConfigs/WebSecurityConfig.java

    r9ff45d6 r9dd526f  
    33import org.springframework.context.annotation.Bean;
    44import org.springframework.context.annotation.Configuration;
    5 import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
     5import org.springframework.security.authentication.AuthenticationManager;
    66import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    77import org.springframework.security.config.annotation.web.builders.HttpSecurity;
     
    99import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    1010import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
    11 import parkup.services.RegistriranParkiracService;
    12 import parkup.services.VrabotenService;
     11import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
     12import org.springframework.web.cors.CorsConfiguration;
     13import parkup.configs.CustomAuthenticationFilter;
     14import parkup.configs.CustomAuthorizationFilter;
     15import parkup.services.AdministratorService;
     16import parkup.services.RegisteredUserService;
     17import parkup.services.WorkerService;
     18
     19import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS;
    1320
    1421@EnableWebSecurity
    1522@Configuration
    1623public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    17         private final VrabotenService vrabotenService;
     24        private final WorkerService workerService;
    1825        private final BCryptPasswordEncoder bCryptPasswordEncoder;
    19         private final RegistriranParkiracService registriranParkiracService;
     26        private final RegisteredUserService registeredUserService;
     27        private final AdministratorService administratorService;
    2028
    21         public WebSecurityConfig(VrabotenService vrabotenService, BCryptPasswordEncoder bCryptPasswordEncoder, RegistriranParkiracService registriranParkiracService) {
    22             this.vrabotenService = vrabotenService;
     29        public WebSecurityConfig(WorkerService workerService, BCryptPasswordEncoder bCryptPasswordEncoder, RegisteredUserService registeredUserService, AdministratorService administratorService) {
     30            this.workerService = workerService;
    2331            this.bCryptPasswordEncoder = bCryptPasswordEncoder;
    24             this.registriranParkiracService = registriranParkiracService;
     32            this.registeredUserService = registeredUserService;
     33            this.administratorService = administratorService;
     34        }
     35
     36        @Override
     37        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
     38            auth.userDetailsService(registeredUserService).passwordEncoder(bCryptPasswordEncoder);
     39            auth.userDetailsService(workerService).passwordEncoder(bCryptPasswordEncoder);
     40            auth.userDetailsService(administratorService).passwordEncoder(bCryptPasswordEncoder);
    2541        }
    2642
    2743        @Override
    2844        protected void configure(HttpSecurity http) throws Exception {
    29             http
    30                     .csrf().disable()
    31                     .authorizeRequests()
    32                         .antMatchers("/registriranParkirac/registration/**")
    33                         .permitAll()
    34                     .anyRequest()
    35                     .authenticated().and().formLogin();//ruta na viktor
    36         }
    37 
    38         @Override
    39         protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    40             auth.authenticationProvider(daoAuthenticationProviderW());
    41             auth.authenticationProvider(daoAuthenticationProviderRP());
     45            CustomAuthenticationFilter customAuthenticationFilter = new CustomAuthenticationFilter(authenticationManagerBean());
     46            customAuthenticationFilter.setFilterProcessesUrl("/api/login");
     47            http.csrf().disable();
     48            http.cors().configurationSource(request -> new CorsConfiguration().applyPermitDefaultValues());
     49            http.sessionManagement().sessionCreationPolicy(STATELESS);
     50            http.authorizeRequests().antMatchers("/**").permitAll();
     51//            http.authorizeRequests().antMatchers("/user/registration/**", "/home/markers","/home/getLocation/**","/api/login/**","/home").permitAll();
     52//            http.authorizeRequests().antMatchers( "/user/setFavourite/**","user/favourites").hasAuthority("ROLE_USER");
     53//            http.authorizeRequests().antMatchers( "/home/**").hasAuthority("ROLE_ADMIN");
     54//            http.authorizeRequests().anyRequest().authenticated();
     55            http.addFilter(customAuthenticationFilter);
     56            http.addFilterBefore(new CustomAuthorizationFilter(), UsernamePasswordAuthenticationFilter.class);
    4257        }
    4358
    4459        @Bean
    45         public DaoAuthenticationProvider daoAuthenticationProviderW() {
    46             DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
    47             provider.setPasswordEncoder(bCryptPasswordEncoder);
    48             provider.setUserDetailsService(vrabotenService);
    49             return provider;
     60        @Override
     61        public AuthenticationManager authenticationManagerBean() throws Exception {
     62            return super.authenticationManagerBean();
    5063        }
    5164
    52         @Bean
    53         public DaoAuthenticationProvider daoAuthenticationProviderRP(){
    54             DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
    55             provider.setPasswordEncoder(bCryptPasswordEncoder);
    56             provider.setUserDetailsService(registriranParkiracService);
    57             return provider;
    58         }
    5965
    6066    }
  • sources/app/src/main/java/parkup/controllers/ParkingSessionController.java

    r9ff45d6 r9dd526f  
    33import org.springframework.beans.factory.annotation.Autowired;
    44import org.springframework.web.bind.annotation.*;
    5 import parkup.data.Tablicka;
    65import parkup.entities.ParkingSession;
    76import parkup.services.ParkingSessionService;
  • sources/app/src/main/java/parkup/controllers/ParkingZoneController.java

    r9ff45d6 r9dd526f  
    5353        return this.parkingZoneService.updateParkingZone(parkingZoneId, parkingZone.getPzName(), parkingZone.getPrice(),
    5454                parkingZone.getAddress(), parkingZone.getTime_from(), parkingZone.getTime_to(), parkingZone.getColor(),
    55                 parkingZone.getParkingSpaces(), parkingZone.getParkingZoneLocation(),parkingZone.getOdgovorniLica());
     55                parkingZone.getParkingSpaces(), parkingZone.getParkingZoneLocation(),parkingZone.getResponsibleWorkers());
    5656
    5757    }
  • sources/app/src/main/java/parkup/controllers/RegistriranParkiracController.java

    r9ff45d6 r9dd526f  
    88import parkup.configs.RegistrationRequest;
    99import parkup.configs.RegistrationServiceRP;
    10 import parkup.entities.RegistriranParkirac;
    11 import parkup.services.RegistriranParkiracService;
     10import parkup.entities.RegisteredUser;
     11import parkup.services.RegisteredUserService;
    1212
    1313@RestController
    1414public class RegistriranParkiracController {
    15     private final RegistriranParkiracService registriranParkiracService;
     15    private final RegisteredUserService registeredUserService;
    1616    private final RegistrationServiceRP registrationServiceRP;
    1717
    1818    @Autowired
    19     public RegistriranParkiracController(RegistriranParkiracService registriranParkiracService, RegistrationServiceRP registrationServiceRP) {
    20         this.registriranParkiracService = registriranParkiracService;
     19    public RegistriranParkiracController(RegisteredUserService registeredUserService, RegistrationServiceRP registrationServiceRP) {
     20        this.registeredUserService = registeredUserService;
    2121        this.registrationServiceRP = registrationServiceRP;
    2222    }
    2323
    2424    @GetMapping({"/registriranParkirac"})
    25     public List<RegistriranParkirac> getAllRegistriraniParkiraci() {
    26         return this.registriranParkiracService.getRegPark();
     25    public List<RegisteredUser> getAllRegistriraniParkiraci() {
     26        return this.registeredUserService.getRegPark();
    2727    }
    2828
    2929    @GetMapping({"/registriranParkirac/{regParkId}"})
    30     public RegistriranParkirac getRegistriranParkirac(@PathVariable int regParkId) {
    31         RegistriranParkirac regPark = this.registriranParkiracService.findById(regParkId);
     30    public RegisteredUser getRegistriranParkirac(@PathVariable int regParkId) {
     31        RegisteredUser regPark = this.registeredUserService.findById(regParkId);
    3232        if (regPark != null) {
    3333            return regPark;
     
    3838
    3939    @PostMapping({"/registriranParkirac"})
    40     public Optional<RegistriranParkirac> addRegistriranParkirac(@RequestBody RegistriranParkirac regPark) {
    41         return this.registriranParkiracService.addRegPark(regPark);
     40    public Optional<RegisteredUser> addRegistriranParkirac(@RequestBody RegisteredUser regPark) {
     41        return this.registeredUserService.addRegPark(regPark);
    4242    }
    4343
    4444    @PutMapping({"/registriranParkirac/{regParkId}"})
    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());
     45    public RegisteredUser updateRegistriranParkirac(@PathVariable int regParkId, @RequestBody RegisteredUser regPark) {
     46        return this.registeredUserService.updateRegPark(regParkId, regPark.getName(), regPark.getSurname(), regPark.getMobile(), regPark.getEmail(),regPark.getPlates());
    4747    }
    4848
    4949    @DeleteMapping({"/registriranParkirac/{regParkId}"})
    50     public Optional<RegistriranParkirac> deleteRegistriranParkirac(@PathVariable int regParkId) {
    51         return this.registriranParkiracService.deleteRegPark(regParkId);
     50    public Optional<RegisteredUser> deleteRegistriranParkirac(@PathVariable int regParkId) {
     51        return this.registeredUserService.deleteRegPark(regParkId);
    5252    }
    5353
  • sources/app/src/main/java/parkup/controllers/VrabotenController.java

    r9ff45d6 r9dd526f  
    33import java.util.List;
    44import java.util.Optional;
    5 import java.util.stream.Collectors;
    65
    76import org.springframework.beans.factory.annotation.Autowired;
    87import org.springframework.web.bind.annotation.*;
    9 import parkup.configs.RegistrationRequest;
    108//import parkup.configs.RegistrationServiceW;
    11 import parkup.data.AddUpdateVraboten;
    12 import parkup.data.enumarations.EmployeeStatus;
    13 import parkup.entities.Vraboten;
    14 import parkup.services.VrabotenService;
    15 import parkup.data.VrabotenDemo;
     9import parkup.data.AddUpdateWorker;
     10import parkup.data.WorkerDemoParkingZones;
     11import parkup.entities.Worker;
     12import parkup.services.WorkerService;
     13import parkup.data.WorkerDemo;
    1614
    1715@RestController
    1816public class VrabotenController {
    19     private final VrabotenService vrabotenService;
     17    private final WorkerService workerService;
    2018//    private final RegistrationServiceW registrationServiceW;
    2119
    2220    @Autowired
    23     public VrabotenController(VrabotenService vrabotenService) {
    24         this.vrabotenService = vrabotenService;
     21    public VrabotenController(WorkerService workerService) {
     22        this.workerService = workerService;
    2523    }
    2624
    2725    @GetMapping({"/vraboten"})
    28     public List<Vraboten> getAllVraboten() {
    29         return this.vrabotenService.getVraboteni();
     26    public List<Worker> getAllVraboten() {
     27        return this.workerService.getWorkers();
    3028    }
    3129
    3230    @GetMapping({"/vraboten/{vrabotenId}"})
    33     public Vraboten getVraboten(@PathVariable int vrabotenId) {
    34         Vraboten vraboten = this.vrabotenService.findById(vrabotenId);
     31    public WorkerDemoParkingZones getVraboten(@PathVariable int vrabotenId) {
     32        WorkerDemoParkingZones vraboten = this.workerService.findById(vrabotenId);
    3533        if (vraboten != null) {
    3634            return vraboten;
     
    4139
    4240    @GetMapping({"/vraboten/vrabotenDemo"})
    43     public List<VrabotenDemo> getVraboteniDemos(){
    44         return this.vrabotenService.getAllVraboteniDemos();
     41    public List<WorkerDemo> getVraboteniDemos(){
     42        return this.workerService.getAllVraboteniDemos();
    4543    }
    4644
    4745    @PostMapping({"/vraboten"})
    48     public Optional<Vraboten> addVraboten(@RequestBody AddUpdateVraboten vraboten) {
    49         return this.vrabotenService.addVraboten(vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(),
     46    public Optional<Worker> addVraboten(@RequestBody AddUpdateWorker vraboten) {
     47        return this.workerService.addWorker(vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(),
    5048                vraboten.getMobileNumber(), vraboten.getEmail(), vraboten.getStatus(),vraboten.getParkingZones());
    5149    }
     
    5351    @PutMapping({"/vraboten/lock/{vrabotenId}"})
    5452    public void lockVraboten(@PathVariable int vrabotenId) {
    55         this.vrabotenService.lockVrabotenAcc(vrabotenId);
     53        this.workerService.lockWorkerAcc(vrabotenId);
    5654    }
    5755
     
    6260
    6361    @PutMapping({"/vraboten/{vrabotenId}"})
    64     public Vraboten updateVraboten(@PathVariable int vrabotenId, @RequestBody AddUpdateVraboten vraboten) {
    65         return this.vrabotenService.updateVraboten(vrabotenId,vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(),
     62    public WorkerDemoParkingZones updateVraboten(@PathVariable int vrabotenId, @RequestBody AddUpdateWorker vraboten) {
     63        return this.workerService.updateWorker(vrabotenId,vraboten.getPassword(), vraboten.getConfirmPass(), vraboten.isLocked(),vraboten.getFirstName(), vraboten.getLastName(),
    6664                vraboten.getMobileNumber(), vraboten.getEmail(), vraboten.getStatus(),vraboten.getParkingZones());
    6765    }
    6866
    6967    @DeleteMapping({"/vraboten/{vrabotenId}"})
    70     public Optional<Vraboten> deleteVraboten(@PathVariable int vrabotenId) {
    71         return this.vrabotenService.deleteVraboten(vrabotenId);
     68    public Optional<Worker> deleteVraboten(@PathVariable int vrabotenId) {
     69        return this.workerService.deleteWorker(vrabotenId);
    7270    }
    7371
  • sources/app/src/main/java/parkup/data/AddUpdateWorker.java

    r9ff45d6 r9dd526f  
    55import java.util.List;
    66
    7 public class AddUpdateVraboten {
     7public class AddUpdateWorker {
    88    String firstName;
    99    String lastName;
     
    1616    boolean locked;
    1717
    18     public AddUpdateVraboten(String firstName, String lastName, String email, String password, String confirmPass, List<String> parkingZones, EmployeeStatus status, String mobileNumber, boolean locked) {
     18    public AddUpdateWorker(String firstName, String lastName, String email, String password, String confirmPass, List<String> parkingZones, EmployeeStatus status, String mobileNumber, boolean locked) {
    1919        this.firstName = firstName;
    2020        this.lastName = lastName;
  • sources/app/src/main/java/parkup/data/Location.java

    r9ff45d6 r9dd526f  
    1919    private int locationId;
    2020
    21     private float longitude;
     21    private float lng;
    2222
    23     private float latitude;
     23    private float lat;
    2424
    2525    public Location(){}
    2626
    27     public Location(float longtitude, float latitude) {
    28         this.longitude = longtitude;
    29         this.latitude = latitude;
     27    public Location(float lng, float lat) {
     28        this.lng = lng;
     29        this.lat = lat;
    3030    }
    3131
    32     public float getLongitude() {
    33         return longitude;
     32    public float getLng() {
     33        return lng;
    3434    }
    3535
    36     public void setLongitude(float longitude) {
    37         this.longitude = longitude;
     36    public void setLng(float lng) {
     37        this.lng = lng;
    3838    }
    3939
    40     public float getLatitude() {
    41         return latitude;
     40    public float getLat() {
     41        return lat;
    4242    }
    4343
    44     public void setLatitude(float latitude) {
    45         this.latitude = latitude;
     44    public void setLat(float lat) {
     45        this.lat = lat;
    4646    }
    4747}
  • sources/app/src/main/java/parkup/data/ParkingZoneAdminView.java

    r9ff45d6 r9dd526f  
    1515    private List<ParkingSpace> parkingSpaces;
    1616    private ParkingZoneLocation parkingZoneLocation;
    17     private List<Integer> odgovorniLica;
     17    private List<Integer> responsibleWorkers;
    1818
    19     public ParkingZoneAdminView(int pzId, String pzName, int price, int time_from, int time_to, String address, String color, List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Integer> odgovorniLica) {
     19    public ParkingZoneAdminView(int pzId, String pzName, int price, int time_from, int time_to, String address, String color, List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Integer> responsibleWorkers) {
    2020        this.pzId = pzId;
    2121        this.pzName = pzName;
     
    2727        this.parkingSpaces = parkingSpaces;
    2828        this.parkingZoneLocation = parkingZoneLocation;
    29         this.odgovorniLica = odgovorniLica;
     29        this.responsibleWorkers = responsibleWorkers;
    3030    }
    3131
     
    104104    }
    105105
    106     public List<Integer> getOdgovorniLica() {
    107         return odgovorniLica;
     106    public List<Integer> getResponsibleWorkers() {
     107        return responsibleWorkers;
    108108    }
    109109
    110     public void setOdgovorniLica(List<Integer> odgovorniLica) {
    111         this.odgovorniLica = odgovorniLica;
     110    public void setResponsibleWorkers(List<Integer> responsibleWorkers) {
     111        this.responsibleWorkers = responsibleWorkers;
    112112    }
    113113}
  • sources/app/src/main/java/parkup/data/ParkingZoneLocation.java

    r9ff45d6 r9dd526f  
    2424
    2525    @OneToMany(cascade = {CascadeType.ALL})
    26     private List<Location> teminja;
     26    private List<Location> coords;
    2727
    28     public ParkingZoneLocation(int parkingZoneLocationId, Location centre, List<Location> teminja) {
     28    public ParkingZoneLocation(int parkingZoneLocationId, Location centre, List<Location> coords) {
    2929        this.parkingZoneLocationId = parkingZoneLocationId;
    3030        this.centre = centre;
    31         this.teminja = teminja;
     31        this.coords = coords;
    3232    }
    3333
    34     public ParkingZoneLocation(Location centre, List<Location> teminja) {
     34    public ParkingZoneLocation(Location centre, List<Location> coords) {
    3535        this.centre = centre;
    36         this.teminja = teminja;
     36        this.coords = coords;
    3737    }
    3838
     
    4747    }
    4848
    49     public List<Location> getTeminja() {
    50         return teminja;
     49    public List<Location> getCoords() {
     50        return coords;
    5151    }
    5252
    53     public void setTeminja(List<Location> teminja) {
    54         this.teminja = teminja;
     53    public void setCoords(List<Location> teminja) {
     54        this.coords = teminja;
    5555    }
    5656}
  • sources/app/src/main/java/parkup/data/WorkerDemo.java

    r9ff45d6 r9dd526f  
    11package parkup.data;
    22
    3 public class VrabotenDemo {
    4     private int vrabotenId;
     3public class WorkerDemo {
     4    private int workerId;
    55    private String firstName;
    66    private String lastName;
    77    private String email;
    88
    9     public VrabotenDemo() {}
     9    public WorkerDemo() {}
    1010
    11     public VrabotenDemo(int id,String firstName, String lastName, String email) {
    12         this.vrabotenId=id;
     11    public WorkerDemo(int id, String firstName, String lastName, String email) {
     12        this.workerId =id;
    1313        this.firstName = firstName;
    1414        this.lastName = lastName;
     
    1616    }
    1717
    18     public int getVrabotenId() {
    19         return vrabotenId;
     18    public int getWorkerId() {
     19        return workerId;
    2020    }
    2121
    22     public void setVrabotenId(int vrabotenId) {
    23         this.vrabotenId = vrabotenId;
     22    public void setWorkerId(int workerId) {
     23        this.workerId = workerId;
    2424    }
    2525
  • sources/app/src/main/java/parkup/entities/Administrator.java

    r9ff45d6 r9dd526f  
    44import org.springframework.security.core.authority.SimpleGrantedAuthority;
    55import org.springframework.security.core.userdetails.UserDetails;
     6import parkup.data.enumarations.UserRole;
    67
    78import javax.persistence.*;
     
    4142    private String mobile;
    4243
     44    @Enumerated
    4345    @Column(name = "role")
    44     private String role;
     46    private UserRole role;
    4547
    4648    private boolean locked;
     
    4951
    5052    public Administrator(){
    51         this.role = "ROLE_ADMINISTRATOR";
     53        this.role = UserRole.ADMIN;
     54        this.enabled=true;
    5255    }
    5356
     
    5962        this.password = password;
    6063        this.mobile = mobile;
    61         this.role = "ROLE_ADMINISTRATOR";
     64        this.enabled=true;
     65        this.role = UserRole.ADMIN;
    6266    }
    6367
     
    6872        this.password = password;
    6973        this.mobile = mobile;
    70         this.role = "ROLE_ADMINISTRATOR";
     74        this.role = UserRole.ADMIN;
     75        this.enabled=true;
    7176    }
    7277
     
    7782        this.password = password;
    7883        this.mobile = mobile;
    79         this.role = "ROLE_ADMINISTRATOR";
     84        this.role = UserRole.ADMIN;
     85        this.enabled=true;
    8086    }
    8187
     
    124130    }
    125131
    126     public String getRole() {return role;}
     132    public UserRole getRole() {return role;}
    127133
    128     public void setRole(String role) {this.role = role;}
     134    public void setRole(UserRole role) {this.role = role;}
    129135
    130136    @Override
    131137    public Collection<? extends GrantedAuthority> getAuthorities() {
    132         SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role);
     138        SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.getAuthority());
    133139        return Collections.singleton(authority);
    134140    }
  • sources/app/src/main/java/parkup/entities/Guest.java

    r9ff45d6 r9dd526f  
    33import javax.persistence.*;
    44
    5 import parkup.data.Tablicka;
     5import org.springframework.security.core.GrantedAuthority;
     6import org.springframework.security.core.authority.SimpleGrantedAuthority;
     7import org.springframework.security.core.userdetails.UserDetails;
     8import parkup.data.Plate;
     9import parkup.data.enumarations.UserRole;
     10
     11import java.util.Collection;
     12import java.util.Collections;
    613
    714@Entity
    815@Table(name = "guest")
    9 public class Guest {
     16public class Guest implements UserDetails {
    1017    @Id
    1118    @SequenceGenerator(
     
    2532    @OneToOne
    2633    @JoinColumn(name = "tablickaId", nullable = false)
    27     private Tablicka tablicka;
     34    private Plate plate;
    2835
    2936    @Column(name = "email")
     
    3643    private ParkingSession session;
    3744
    38     public Guest() {}
     45    @Enumerated
     46    private UserRole role;
    3947
    40     public Guest(int guestId, Tablicka tablicka, String email, String mobile) {
     48
     49    public Guest() {this.role=UserRole.GUEST;}
     50
     51    public Guest(int guestId, Plate plate, String email, String mobile) {
    4152        this.guestId = guestId;
    42         this.tablicka = tablicka;
     53        this.plate = plate;
    4354        this.email = email;
    4455        this.mobile = mobile;
     56        this.role=UserRole.GUEST;
    4557    }
    4658
    47     public Guest(Tablicka tablicka, String email, String mobile) {
    48         this.tablicka = tablicka;
     59    public Guest(Plate plate, String email, String mobile) {
     60        this.plate = plate;
    4961        this.email = email;
    5062        this.mobile = mobile;
     63        this.role=UserRole.GUEST;
    5164    }
    5265
     
    5972    }
    6073
    61     public Tablicka getTablicka() {
    62         return tablicka;
     74    public Plate getTablicka() {
     75        return plate;
    6376    }
    6477
    65     public void setTablicka(Tablicka tablicka) {
    66         this.tablicka = tablicka;
     78    public void setTablicka(Plate plate) {
     79        this.plate = plate;
    6780    }
    6881
     
    7588    }
    7689
     90    public ParkingSession getSession() {
     91        return session;
     92    }
     93
     94    public void setSession(ParkingSession session) {
     95        this.session = session;
     96    }
     97
     98    public UserRole getRole() {
     99        return role;
     100    }
     101
     102    public void setRole(UserRole role) {
     103        this.role = role;
     104    }
     105
    77106    public String getMobile() {
    78107        return mobile;
     
    82111        this.mobile = mobile;
    83112    }
     113
     114    @Override
     115    public Collection<? extends GrantedAuthority> getAuthorities() {
     116        SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.name());
     117        return Collections.singleton(authority);
     118    }
     119
     120    @Override
     121    public String getPassword() {
     122        return null;
     123    }
     124
     125    @Override
     126    public String getUsername() {
     127        return Integer.toString(guestId);
     128    }
     129
     130    @Override
     131    public boolean isAccountNonExpired() {
     132        return false;
     133    }
     134
     135    @Override
     136    public boolean isAccountNonLocked() {
     137        return false;
     138    }
     139
     140    @Override
     141    public boolean isCredentialsNonExpired() {
     142        return false;
     143    }
     144
     145    @Override
     146    public boolean isEnabled() {
     147        return false;
     148    }
    84149}
  • sources/app/src/main/java/parkup/entities/ParkingSession.java

    r9ff45d6 r9dd526f  
    22
    33import org.springframework.format.annotation.DateTimeFormat;
    4 import parkup.data.Tablicka;
     4import parkup.data.Plate;
    55import parkup.data.enumarations.SessionStatus;
    66
     
    3434
    3535    @OneToOne(cascade = {CascadeType.ALL})
    36     @JoinColumn(name = "reg_tablicka", nullable = false)
    37     private Tablicka tablica;
     36    @JoinColumn(name = "plate", nullable = false)
     37    private Plate plate;
    3838
    3939    @Column(name="session_status")
     
    6060    }
    6161
    62     public ParkingSession(Tablicka tablica){
     62    public ParkingSession(Plate plate){
    6363        this.timeStart= LocalDateTime.now();
    6464        this.timeEnd=null;
    65         this.tablica=tablica;
     65        this.plate=plate;
    6666        this.status=SessionStatus.STARTED_UNVERIFIED;
    6767    }
     
    9292    }
    9393
    94     public Tablicka getTablica() {
    95         return tablica;
     94    public Plate getPlate() {
     95        return plate;
    9696    }
    9797
    98     public void setTablica(Tablicka tablica) {
    99         this.tablica = tablica;
     98    public void setPlate(Plate plate) {
     99        this.plate = plate;
    100100    }
    101101
  • sources/app/src/main/java/parkup/entities/ParkingZone.java

    r9ff45d6 r9dd526f  
    4343
    4444    @Transient
    45     @Column(name = "zafateniMesta")
     45    @Column(name = "takenSpaces")
    4646    private int takenSpaces;
    4747
     
    5252//    private List<Vraboten> odgovorniLica;
    5353
    54     @OneToMany(cascade = {CascadeType.MERGE})
     54    @OneToMany(cascade = {CascadeType.ALL})
    5555    private List<ParkingSpace> parkingSpaces;
    5656
  • sources/app/src/main/java/parkup/entities/RegisteredUser.java

    r9ff45d6 r9dd526f  
    1010import org.springframework.security.core.authority.SimpleGrantedAuthority;
    1111import org.springframework.security.core.userdetails.UserDetails;
    12 import parkup.data.Tablicka;
     12import parkup.data.Plate;
     13import parkup.data.enumarations.UserRole;
    1314
    1415@Entity
    15 @Table(name = "registriranParkirac")
    16 public class RegistriranParkirac implements UserDetails {
     16@Table(name = "registeredUser")
     17public class RegisteredUser implements UserDetails {
    1718    @Id
    1819    @SequenceGenerator(
    19             name="registriranParkirac_sequence_generator",
    20             sequenceName = "registriranParkirac_sequence",
     20            name="registeredUser_sequence_generator",
     21            sequenceName = "registeredUser_sequence",
    2122            allocationSize = 1,
    2223            initialValue = 300
     
    2425    @GeneratedValue(    //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e
    2526            strategy = GenerationType.SEQUENCE,
    26             generator = "registriranParkirac_sequence_generator"
     27            generator = "registeredUser_sequence_generator"
    2728    )
    2829    @Column(name = "regParkId")
     
    3940
    4041    @OneToMany(cascade ={CascadeType.ALL})
    41     @Column(name = "regTablicki")
    42     private List<Tablicka> regTablicki;
     42    @Column(name = "regPlates")
     43    private List<Plate> plates;
    4344
    4445    @Column(name = "email")
     
    4849    private String mobile;
    4950
     51    @Enumerated
    5052    @Column(name = "role")
    51     private String role;
     53    private UserRole role;
    5254
    5355    @OneToOne
     
    5860    private boolean enabled;
    5961
    60     public RegistriranParkirac() {
    61         this.regTablicki = new ArrayList<Tablicka>();
    62         this.role = "ROLE_REGISTRIRAN_PARKIRAC";
    63         session=null;
    64     }
    65 
    66     public RegistriranParkirac(int regParkId, String name, String surname, String password, List<Tablicka> regTablicki, String email, String mobile) {
     62    public RegisteredUser() {
     63        this.plates = new ArrayList<Plate>();
     64        this.role = UserRole.REG_USER;
     65        session=null;
     66    }
     67
     68    public RegisteredUser(int regParkId, String name, String surname, String password, List<Plate> plates, String email, String mobile) {
    6769        this.regParkId = regParkId;
    6870        this.name = name;
    6971        this.surname = surname;
    7072        this.password = password;
    71         this.regTablicki = regTablicki;
    72         this.email = email;
    73         this.mobile = mobile;
    74         this.role = "ROLE_REGISTRIRAN_PARKIRAC";
    75         session=null;
    76     }
    77 
    78     public RegistriranParkirac(String name, String surname, String password, List<Tablicka> regTablicki, String email, String mobile) {
    79         this.name = name;
    80         this.surname = surname;
    81         this.password = password;
    82         this.regTablicki = regTablicki;
    83         this.email = email;
    84         this.mobile = mobile;
    85         this.role = "ROLE_REGISTRIRAN_PARKIRAC";
    86         session=null;
    87     }
    88 
    89     public RegistriranParkirac(String name, String surname, String email, String password, String mobile) {
    90         this.name = name;
    91         this.surname = surname;
    92         this.password = password;
    93         this.email = email;
    94         this.mobile = mobile;
    95         this.role = "ROLE_REGISTRIRAN_PARKIRAC";
     73        this.plates = plates;
     74        this.email = email;
     75        this.mobile = mobile;
     76        this.role = UserRole.REG_USER;
     77        session=null;
     78    }
     79
     80    public RegisteredUser(String name, String surname, String password, List<Plate> plates, String email, String mobile) {
     81        this.name = name;
     82        this.surname = surname;
     83        this.password = password;
     84        this.plates = plates;
     85        this.email = email;
     86        this.mobile = mobile;
     87        this.role = UserRole.REG_USER;
     88        session=null;
     89    }
     90
     91    public RegisteredUser(String name, String surname, String email, String password, String mobile) {
     92        this.name = name;
     93        this.surname = surname;
     94        this.password = password;
     95        this.email = email;
     96        this.mobile = mobile;
     97        this.role = UserRole.REG_USER;
    9698        session=null;
    9799    }
     
    142144    }
    143145
    144     public List<Tablicka> getRegTablicki() {
    145         return regTablicki;
    146     }
    147 
    148     public void setRegTablicki(List<Tablicka> regTablicki) {
    149         this.regTablicki = regTablicki;
     146    public List<Plate> getPlates() {
     147        return plates;
     148    }
     149
     150    public void setPlates(List<Plate> plates) {
     151        this.plates = plates;
    150152    }
    151153
     
    166168    }
    167169
    168     public String getRole() {return role;}
    169 
    170     public void setRole(String role) {this.role = role;}
     170    public UserRole getRole() {return role;}
     171
     172    public void setRole(UserRole role) {this.role = role;}
    171173
    172174    @Override
    173175    public Collection<? extends GrantedAuthority> getAuthorities() {
    174         SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role);
     176        SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.getAuthority());
    175177        return Collections.singleton(authority);
    176178    }
  • sources/app/src/main/java/parkup/entities/Worker.java

    r9ff45d6 r9dd526f  
    22
    33import org.springframework.security.core.GrantedAuthority;
     4import org.springframework.security.core.authority.SimpleGrantedAuthority;
    45import org.springframework.security.core.userdetails.UserDetails;
    5 import parkup.data.VrabotenDemo;
    66import parkup.data.enumarations.EmployeeStatus;
     7import parkup.data.enumarations.UserRole;
    78
    89import javax.persistence.*;
    910import java.util.ArrayList;
    1011import java.util.Collection;
     12import java.util.Collections;
    1113import java.util.List;
    1214
    1315@Entity
    14 @Table(name = "vraboten")
    15 public class Vraboten implements UserDetails {
     16@Table(name = "worker")
     17public class Worker implements UserDetails {
    1618    @Id
    1719    @SequenceGenerator(
    18             name="vraboten_sequence_generator",
    19             sequenceName = "vraboten_sequence",
     20            name="worker_sequence_generator",
     21            sequenceName = "worker_sequence",
    2022            allocationSize = 1,
    2123            initialValue = 200
     
    2325    @GeneratedValue(    //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e
    2426            strategy = GenerationType.SEQUENCE,
    25             generator = "vraboten_sequence_generator"
     27            generator = "worker_sequence_generator"
    2628    )
    27     @Column(name = "vrabotenId")
    28     private int vrabotenId;
     29    @Column(name = "workerId")
     30    private int workerId;
    2931
    3032    @Override
     
    5456    private String mobile;
    5557
     58    @Enumerated
    5659    @Column(name = "role")
    57     private String role;
     60    private UserRole role;
    5861
    5962    @ManyToMany(cascade = {CascadeType.ALL})
     
    7477
    7578
    76     public Vraboten() {
    77         this.role = "ROLE_VRABOTEN";
     79    public Worker() {
     80        this.role = UserRole.WORKER;
    7881        this.parkingZones = new ArrayList<ParkingZone>();
    7982        this.enabled = true;
     
    8184    }
    8285
    83     public Vraboten(int vrabotenId, String firstName, String lastName, String email, String password, String mobile, List<ParkingZone> parkingZones) {
    84         this.vrabotenId = vrabotenId;
     86    public Worker(int workerId, String firstName, String lastName, String email, String password, String mobile, List<ParkingZone> parkingZones) {
     87        this.workerId = workerId;
    8588        this.firstName = firstName;
    8689        this.lastName = lastName;
     
    8992        this.mobile = mobile;
    9093        this.parkingZones = parkingZones;
    91         this.role = "ROLE_VRABOTEN";
     94        this.role = UserRole.WORKER;
    9295        this.enabled = true;
    9396        this.status = EmployeeStatus.NOT_WORKING;
    9497    }
    9598
    96     public Vraboten(String firstName, String lastName, String email, String password, String mobile, List<ParkingZone> parkingZones) {
     99    public Worker(String firstName, String lastName, String email, String password, String mobile, List<ParkingZone> parkingZones) {
    97100        this.firstName = firstName;
    98101        this.lastName = lastName;
     
    101104        this.mobile = mobile;
    102105        this.parkingZones = parkingZones;
    103         this.role = "ROLE_VRABOTEN";
     106        this.role = UserRole.WORKER;
    104107        this.enabled = true;
    105108        this.status = EmployeeStatus.NOT_WORKING;
    106109    }
    107110
    108     public Vraboten(String firstName, String lastName, String email, String password, String mobile) {
     111    public Worker(String firstName, String lastName, String email, String password, String mobile) {
    109112        this.firstName=firstName;
    110113        this.lastName=lastName;
     
    113116        this.mobile=mobile;
    114117        this.parkingZones=new ArrayList<>();
    115         this.role="ROLE_VRABOTEN";
     118        this.role = UserRole.WORKER;
    116119        this.enabled=true;
    117120        this.status = EmployeeStatus.NOT_WORKING;
    118121    }
    119122
    120     public int getVrabotenId() {
    121         return vrabotenId;
    122     }
    123 
    124     public void setVrabotenId(int vrabotenId) {
    125         this.vrabotenId = vrabotenId;
     123    public int getWorkerId() {
     124        return workerId;
     125    }
     126
     127    public void setWorkerId(int workerId) {
     128        this.workerId = workerId;
    126129    }
    127130
     
    152155    @Override
    153156    public Collection<? extends GrantedAuthority> getAuthorities() {
    154         return null;
     157        SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.getAuthority());
     158        return Collections.singleton(authority);
    155159    }
    156160
     
    200204    }
    201205
    202     public String getRole() {return role;}
    203 
    204     public void setRole(String role) {this.role = role;}
     206    public UserRole getRole() {return role;}
     207
     208    public void setRole(UserRole role) {this.role = role;}
    205209
    206210    public List<ParkingZone> getParkingZones() {return parkingZones;}
  • sources/app/src/main/java/parkup/repositories/RegisteredUserRepository.java

    r9ff45d6 r9dd526f  
    66import org.springframework.data.jpa.repository.Query;
    77import org.springframework.stereotype.Repository;
    8 import parkup.entities.RegistriranParkirac;
     8import parkup.entities.RegisteredUser;
    99
    1010import javax.transaction.Transactional;
    1111
    1212@Repository
    13 public interface RegistriranParkiracRepository extends JpaRepository<RegistriranParkirac, Integer> {
    14     RegistriranParkirac findByRegParkId(int regParkId);
     13public interface RegisteredUserRepository extends JpaRepository<RegisteredUser, Integer> {
     14    RegisteredUser findByRegParkId(int regParkId);
    1515
    1616    void deleteByRegParkId(int regParkId);
    1717
    18     Optional<RegistriranParkirac> findRegistriranParkiracByEmail(String email);
     18    Optional<RegisteredUser> findRegisteredUserByEmail(String email);
    1919
    2020    @Transactional
    2121    @Modifying
    22     @Query("UPDATE RegistriranParkirac rp " +
     22    @Query("UPDATE RegisteredUser rp " +
    2323            "SET rp.enabled = TRUE WHERE rp.email = ?1")
    24     int enableRegistriranParkirac(String email);
     24    int enableRegisteredUser(String email);
    2525}
  • sources/app/src/main/java/parkup/repositories/WorkerRepository.java

    r9ff45d6 r9dd526f  
    66import org.springframework.data.jpa.repository.Query;
    77import org.springframework.stereotype.Repository;
    8 import parkup.entities.Vraboten;
     8import parkup.entities.Worker;
    99
    1010import javax.transaction.Transactional;
    1111
    1212@Repository
    13 public interface VrabotenRepository extends JpaRepository<Vraboten, Integer> {
    14     Vraboten findByVrabotenId(int id);
     13public interface WorkerRepository extends JpaRepository<Worker, Integer> {
     14    Worker findByWorkerId(int id);
    1515
    16     void deleteByVrabotenId(int id);
     16    void deleteByWorkerId(int id);
    1717
    18     Optional<Vraboten> findVrabotenByEmail(String email);
     18    Optional<Worker> findWorkerByEmail(String email);
    1919
    2020    @Transactional
    2121    @Modifying
    22     @Query("UPDATE Vraboten v " +
    23             "SET v.enabled = TRUE WHERE v.email = ?1")
    24     int enableVraboten(String email);
     22    @Query("UPDATE Worker a " +
     23            "SET a.enabled = TRUE WHERE a.email = ?1")
     24    int enableWorker(String email);
    2525}
  • sources/app/src/main/java/parkup/services/AdministratorService.java

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

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

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

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

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

    r9ff45d6 r9dd526f  
    77spring.jpa.properties.hibernate.format_sql=true
    88
    9 spring.mail.host=localhost
    10 spring.mail.port=1025
    11 spring.mail.username=hello
    12 spring.mail.password=hello
     9#spring.mail.host=localhost
     10#spring.mail.port=1025
     11#spring.mail.username=hello
     12#spring.mail.password=hello
    1313
    14 spring.mail.properties.mail.transport.protocol=smtp
    15 spring.mail.properties.mail.smtp.ssl.trust="*"
    16 spring.mail.properties.mail.smtp.auth=false
    17 spring.mail.properties.mail.smtp.starttls.enable=false
    18 spring.mail.properties.mail.smtp.connectiontimeout=5000
    19 spring.mail.properties.mail.smtp.timeout=3000
    20 spring.mail.properties.mail.smtp.writetimeout=5000
     14#spring.mail.properties.mail.transport.protocol=smtp
     15#spring.mail.properties.mail.smtp.ssl.trust="*"
     16#spring.mail.properties.mail.smtp.auth=false
     17#spring.mail.properties.mail.smtp.starttls.enable=false
     18#spring.mail.properties.mail.smtp.connectiontimeout=5000
     19#spring.mail.properties.mail.smtp.timeout=3000
     20#spring.mail.properties.mail.smtp.writetimeout=5000
    2121
     22
     23spring.mail.host=smtp.gmail.com
     24spring.mail.port=587
     25spring.mail.username=etnosfreelance@gmail.com
     26spring.mail.password=gfjslyfsqkvlzoxw
     27spring.mail.properties.mail.smtp.auth=true
     28spring.mail.properties.mail.smtp.starttls.enable=true
     29
  • sources/app/target/classes/application.properties

    r9ff45d6 r9dd526f  
    22spring.datasource.username=postgres
    33spring.datasource.password=1234
    4 spring.jpa.hibernate.ddl-auto=update
     4spring.jpa.hibernate.ddl-auto=create-drop
    55spring.jpa.show-sql=true
    66spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
    77spring.jpa.properties.hibernate.format_sql=true
    88
    9 spring.mail.host=localhost
    10 spring.mail.port=1025
    11 spring.mail.username=hello
    12 spring.mail.password=hello
     9#spring.mail.host=localhost
     10#spring.mail.port=1025
     11#spring.mail.username=hello
     12#spring.mail.password=hello
    1313
    14 spring.mail.properties.mail.transport.protocol=smtp
    15 spring.mail.properties.mail.smtp.ssl.trust="*"
    16 spring.mail.properties.mail.smtp.auth=false
    17 spring.mail.properties.mail.smtp.starttls.enable=false
    18 spring.mail.properties.mail.smtp.connectiontimeout=5000
    19 spring.mail.properties.mail.smtp.timeout=3000
    20 spring.mail.properties.mail.smtp.writetimeout=5000
     14#spring.mail.properties.mail.transport.protocol=smtp
     15#spring.mail.properties.mail.smtp.ssl.trust="*"
     16#spring.mail.properties.mail.smtp.auth=false
     17#spring.mail.properties.mail.smtp.starttls.enable=false
     18#spring.mail.properties.mail.smtp.connectiontimeout=5000
     19#spring.mail.properties.mail.smtp.timeout=3000
     20#spring.mail.properties.mail.smtp.writetimeout=5000
    2121
     22
     23spring.mail.host=smtp.gmail.com
     24spring.mail.port=587
     25spring.mail.username=etnosfreelance@gmail.com
     26spring.mail.password=gfjslyfsqkvlzoxw
     27spring.mail.properties.mail.smtp.auth=true
     28spring.mail.properties.mail.smtp.starttls.enable=true
     29
Note: See TracChangeset for help on using the changeset viewer.