source: src/main/java/mk/ukim/finki/wp/db/service/UserService.java

Last change on this file was 5ea00d7, checked in by Malek Alavi <malekalavi7@…>, 6 days ago

Initial project upload

  • Property mode set to 100644
File size: 1.9 KB
Line 
1package mk.ukim.finki.wp.db.service;
2
3import lombok.RequiredArgsConstructor;
4import mk.ukim.finki.wp.db.entity.user.Instructor;
5import mk.ukim.finki.wp.db.entity.user.User;
6import mk.ukim.finki.wp.db.entity.user.UserEntity;
7import mk.ukim.finki.wp.db.entity.user.enums.Role;
8import mk.ukim.finki.wp.db.repository.InstructorRepository;
9import mk.ukim.finki.wp.db.repository.UserEntityRepository;
10import mk.ukim.finki.wp.db.repository.UserRepository;
11import org.springframework.security.crypto.password.PasswordEncoder;
12import org.springframework.stereotype.Service;
13
14import java.util.Optional;
15
16@Service
17@RequiredArgsConstructor
18public class UserService {
19
20 private final UserEntityRepository userEntityRepository;
21 private final UserRepository userRepository;
22 private final InstructorRepository instructorRepository;
23 private final CustomUserDetailsService customUserDetailsService;
24 private final PasswordEncoder passwordEncoder;
25
26 public void registerUser(String firstName, String lastName, String email, String password, Role role) {
27 Optional<UserEntity> userEntity = userEntityRepository.findByEmail(email);
28
29 if(userEntity.isEmpty()) {
30
31 UserEntity newUser = UserEntity.builder()
32 .firstName(firstName)
33 .lastName(lastName)
34 .email(email)
35 .password(passwordEncoder.encode(password))
36 .role(role)
37 .build();
38
39 userEntityRepository.save(newUser);
40
41
42 if (role == Role.USER) {
43 User user = new User();
44 user.setUserEntity(newUser);
45 userRepository.save(user);
46 } else if (role == Role.INSTRUCTOR) {
47 Instructor instructor = new Instructor();
48 instructor.setUserEntity(newUser);
49 instructorRepository.save(instructor);
50 }
51 }
52 }
53}
Note: See TracBrowser for help on using the repository browser.