Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cc.serviceops.account.dao;
- import cc.serviceops.account.SignupDto;
- import cc.serviceops.account.User;
- import cc.serviceops.account.helpers.UserRole;
- import cc.serviceops.organisation.Organisation;
- import cc.serviceops.organisation.dao.OrganisationRepository;
- import org.springframework.security.crypto.password.PasswordEncoder;
- import org.springframework.stereotype.Service;
- @Service
- public class SignupServiceImpl implements SignupService {
- private final OrganisationRepository organisationRepository;
- private final UserRepository userRepository;
- private final PasswordEncoder passwordEncoder;
- public SignupServiceImpl(OrganisationRepository organisationRepository,
- UserRepository userRepository, PasswordEncoder passwordEncoder){
- this.organisationRepository = organisationRepository;
- this.userRepository = userRepository;
- this.passwordEncoder = passwordEncoder;
- }
- @Override
- public void customValidate(SignupDto signupDto) throws PasswordException {
- if (signupDto.getPassword() == null) {
- throw new PasswordException("password empty");
- }
- if (signupDto.getPassword().length() < 8) {
- throw new PasswordException("password should have at least 8 characters");
- }
- if (!signupDto.getPassword().equals(signupDto.getCheckPassword())) {
- throw new PasswordException("passwords dont match");
- }
- }
- @Override
- public void save(SignupDto signupDto) {
- Organisation organisation = saveOrganisation(signupDto);
- saveUser(signupDto, organisation);
- }
- private Organisation saveOrganisation(SignupDto signupDto) {
- Organisation organisation = new Organisation();
- organisation.setName(signupDto.getName());
- organisation.setAddress(signupDto.getAddress());
- organisation.setZipcode(signupDto.getZipcode());
- organisation.setCommunity(signupDto.getCommunity());
- organisation.setVat(signupDto.getVat());
- organisationRepository.save(organisation);
- return organisation;
- }
- private User saveUser(SignupDto signupDto, Organisation organisation) {
- String password = passwordEncoder.encode(signupDto.getPassword());
- User user = new User();
- user.setEmail(signupDto.getEmail());
- user.setPassword(password);
- user.setFirstName(signupDto.getFirstName());
- user.setLastName(signupDto.getLastName());
- user.setOrganisation(organisation);
- user.setRole(UserRole.ADMIN);
- userRepository.save(user);
- return user;
- }
- @Override
- public User saveGuest(User user) {
- String password = passwordEncoder.encode(user.getPassword());
- user.setPassword(password);
- return userRepository.save(user);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement