source: src/main/java/it/finki/tinki/service/impl/AccountServiceImpl.java@ 7edede9

Last change on this file since 7edede9 was 7edede9, checked in by i-ina <76742075+i-ina@…>, 3 years ago

added user register

  • Property mode set to 100644
File size: 2.6 KB
Line 
1package it.finki.tinki.service.impl;
2
3import it.finki.tinki.model.Address;
4import it.finki.tinki.model.Skill;
5import it.finki.tinki.model.Users.Account;
6import it.finki.tinki.model.Users.Company;
7import it.finki.tinki.model.Users.Team;
8import it.finki.tinki.model.Users.User;
9import it.finki.tinki.model.enumerator.AccountType;
10import it.finki.tinki.model.exception.InvalidArgumentsException;
11import it.finki.tinki.model.exception.UserExistsException;
12import it.finki.tinki.repository.AddressRepository;
13import it.finki.tinki.repository.CompanyRepository;
14import it.finki.tinki.repository.TeamRepository;
15import it.finki.tinki.repository.UserRepository;
16import it.finki.tinki.service.AccountService;
17import org.springframework.stereotype.Service;
18
19import java.util.HashMap;
20import java.util.List;
21import java.util.Map;
22
23@Service
24public class AccountServiceImpl implements AccountService {
25
26 AddressRepository addressRepository;
27 UserRepository userRepository;
28 TeamRepository teamRepository;
29 CompanyRepository companyRepository;
30
31 public AccountServiceImpl(AddressRepository addressRepository, UserRepository userRepository, TeamRepository teamRepository, CompanyRepository companyRepository) {
32 this.addressRepository = addressRepository;
33 this.userRepository = userRepository;
34 this.teamRepository = teamRepository;
35 this.companyRepository = companyRepository;
36 }
37
38 @Override
39 public Account findUser(String email, String password, AccountType type) {
40
41 if(type.equals(AccountType.USER)){
42 User u1 = userRepository.findByEmailAndPassword(email, password);
43 return u1;
44 }
45 else if(type.equals(AccountType.TEAM)){
46 Team t1 = teamRepository.findByEmailAndPassword(email, password);
47 return t1;
48 }
49 else if(type.equals(AccountType.COMPANY)){
50 Company c1 = companyRepository.findByEmailAndPassword(email, password);
51 return c1;
52 }
53
54 return null;
55 }
56
57 public Account registerUser(String email, String password, String name, String surname, List<Skill> retainedSkills, List<Skill> skillsToLearn){
58 if(email==null || email.isEmpty() || password==null || password.isEmpty() || name==null || name.isEmpty() || surname==null || surname.isEmpty()){
59 throw new InvalidArgumentsException();
60 }
61
62 if(this.userRepository.findByEmail(email).isPresent()){
63 throw new UserExistsException();
64 }
65
66 User u = new User(email, password, name, AccountType.USER, surname, retainedSkills, skillsToLearn);
67 return this.userRepository.save(u);
68 }
69}
Note: See TracBrowser for help on using the repository browser.