Changeset 509cb95 for src/main/java/it/finki/tinki
- Timestamp:
- 01/07/21 22:32:22 (4 years ago)
- Branches:
- master
- Children:
- a8e8545
- Parents:
- 723994f
- Location:
- src/main/java/it/finki/tinki
- Files:
-
- 2 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/it/finki/tinki/bootstrap/DataHolder.java
r723994f r509cb95 56 56 } 57 57 58 List<Skill> lista; 59 lista = skillRepository.findAll(); 60 61 userRepository.save(new User("asdf", "asdf", "Zoki", AccountType.USER, "Poki", lista, lista)); 62 58 63 addressRepository.save(new Address("asdf", "asdf", "asdf")); 59 64 companyRepository.save(new Company("asdf@asdf", "pass", "Co.co", AccountType.COMPANY, addressRepository.findAll().get(0))); -
src/main/java/it/finki/tinki/helper/Matchmaker.java
r723994f r509cb95 2 2 3 3 import it.finki.tinki.model.Skill; 4 import org.springframework.stereotype.Component; 5 4 6 import java.util.List; 5 7 8 @Component 6 9 public class Matchmaker { 7 10 8 public float match(List<Skill> work, List<Skill> user){11 public static float match(List<Skill> work, List<Skill> user){ 9 12 10 13 float coef = work.size(); -
src/main/java/it/finki/tinki/model/EmbeddedMatchId.java
r723994f r509cb95 18 18 @OneToOne 19 19 private User user; 20 21 public EmbeddedMatchId(){ } 22 23 public EmbeddedMatchId(Work work, User user){ 24 this.work = work; 25 this.user = user; 26 } 27 20 28 } -
src/main/java/it/finki/tinki/model/Match.java
r723994f r509cb95 19 19 public Match(){} 20 20 21 public Match(float coefficient, WorkType type) { 21 public Match(EmbeddedMatchId embeddedMatchId, float coefficient, WorkType type) { 22 this.combinedId = embeddedMatchId; 22 23 this.coefficient = coefficient; 23 24 this.type = type; -
src/main/java/it/finki/tinki/model/dto/LoginResponseDTO.java
r723994f r509cb95 10 10 private String name; 11 11 private AccountType type; 12 private String error; 13 14 public LoginResponseDTO() { 15 this.error = "Invalid username or password!"; 16 } 12 17 } -
src/main/java/it/finki/tinki/repository/MatchRepository.java
r723994f r509cb95 11 11 @Repository 12 12 public interface MatchRepository extends JpaRepository<Match, Long> { 13 List<Match> getAllByCombinedId_User AndTypeOrderByCoefficientDesc(User user, WorkType type);13 List<Match> getAllByCombinedId_User_IdAndTypeOrderByCoefficientDesc(Long uId, WorkType type); 14 14 } -
src/main/java/it/finki/tinki/service/AccountService.java
r723994f r509cb95 6 6 7 7 import java.util.List; 8 import java.util.Map;9 8 10 9 public interface AccountService { … … 13 12 Account registerTeam(String email, String password, String name, int members); 14 13 Account registerCompany(String email, String password, String name, String country, String city, String street); 14 Account findByIdAndType(Long accId, AccountType type); 15 15 } -
src/main/java/it/finki/tinki/service/MatchmakerService.java
r723994f r509cb95 12 12 List<Job> getMatchingJobsForUser(User user); 13 13 List<Project> getMatchingProjectsForUser(User user); 14 void setUpUserJobMatches(Job job, User user); 15 void setUpUserProjectMatches(Project project, User user); 16 void setUpUserInternshipMatches(Internship internship, User user); 14 17 } -
src/main/java/it/finki/tinki/service/impl/AccountServiceImpl.java
r723994f r509cb95 96 96 return this.companyRepository.save(c); 97 97 } 98 99 public Account findByIdAndType(Long id, AccountType type){ 100 switch (type){ 101 case COMPANY: 102 return this.companyRepository.findById(id).get(); 103 case TEAM: 104 return this.teamRepository.findById(id).get(); 105 case USER: 106 return this.userRepository.findById(id).get(); 107 } 108 109 return null; 110 } 98 111 } -
src/main/java/it/finki/tinki/service/impl/MatchmakerServiceImpl.java
r723994f r509cb95 1 1 package it.finki.tinki.service.impl; 2 2 3 import it.finki.tinki.helper.Matchmaker; 4 import it.finki.tinki.model.EmbeddedMatchId; 3 5 import it.finki.tinki.model.Jobs.Internship; 4 6 import it.finki.tinki.model.Jobs.Job; 5 7 import it.finki.tinki.model.Jobs.Project; 8 import it.finki.tinki.model.Jobs.Work; 6 9 import it.finki.tinki.model.Match; 7 import it.finki.tinki.model. Users.Team;10 import it.finki.tinki.model.Skill; 8 11 import it.finki.tinki.model.Users.User; 9 12 import it.finki.tinki.model.enumerator.WorkType; … … 27 30 @Override 28 31 public List<Internship> getMatchingInternshipsForUser(User user) { 29 List<Match> matches = this.matchRepository.getAllByCombinedId_User AndTypeOrderByCoefficientDesc(user, WorkType.INTERNSHIP);32 List<Match> matches = this.matchRepository.getAllByCombinedId_User_IdAndTypeOrderByCoefficientDesc(user.getId(), WorkType.INTERNSHIP); 30 33 31 34 List<Internship> internships = new ArrayList<>(); … … 39 42 @Override 40 43 public List<Job> getMatchingJobsForUser(User user) { 41 List<Match> matches = this.matchRepository.getAllByCombinedId_User AndTypeOrderByCoefficientDesc(user, WorkType.JOB);44 List<Match> matches = this.matchRepository.getAllByCombinedId_User_IdAndTypeOrderByCoefficientDesc(user.getId(), WorkType.JOB); 42 45 43 46 List<Job> jobs = new ArrayList<>(); … … 51 54 @Override 52 55 public List<Project> getMatchingProjectsForUser(User user) { 53 List<Match> matches = this.matchRepository.getAllByCombinedId_User AndTypeOrderByCoefficientDesc(user, WorkType.PROJECT);56 List<Match> matches = this.matchRepository.getAllByCombinedId_User_IdAndTypeOrderByCoefficientDesc(user.getId(), WorkType.PROJECT); 54 57 55 58 List<Project> projects = new ArrayList<>(); … … 60 63 return projects; 61 64 } 65 66 @Override 67 public void setUpUserJobMatches(Job job, User user) { 68 List<Skill> jobSkill = job.getSkillsRequired(); 69 List<Skill> userSkill = user.getRetainedSkills(); 70 71 float coef = Matchmaker.match(jobSkill, userSkill); 72 73 if(coef!=0){ 74 EmbeddedMatchId matchId = new EmbeddedMatchId(job, user); 75 Match m = new Match(matchId, coef, WorkType.JOB); 76 this.matchRepository.save(m); 77 } 78 } 79 80 @Override 81 public void setUpUserProjectMatches(Project project, User user) { 82 List<Skill> projectSkills = project.getSkillsRequired(); 83 List<Skill> userSkill = user.getRetainedSkills(); 84 85 float coef = Matchmaker.match(projectSkills, userSkill); 86 87 if(coef!=0){ 88 EmbeddedMatchId matchId = new EmbeddedMatchId(project, user); 89 Match m = new Match(matchId, coef, WorkType.PROJECT); 90 this.matchRepository.save(m); 91 } 92 } 93 94 @Override 95 public void setUpUserInternshipMatches(Internship internship, User user) { 96 List<Skill> internshipSkills = internship.getSkillsTrained(); 97 List<Skill> userSkill = user.getSkillsToLearn(); 98 99 float coef = Matchmaker.match(internshipSkills, userSkill); 100 101 if(coef!=0){ 102 EmbeddedMatchId matchId = new EmbeddedMatchId(internship, user); 103 Match m = new Match(matchId, coef, WorkType.INTERNSHIP); 104 this.matchRepository.save(m); 105 } 106 } 107 108 62 109 } -
src/main/java/it/finki/tinki/web/controller/LoginController.java
r723994f r509cb95 2 2 3 3 import it.finki.tinki.model.Users.Account; 4 import it.finki.tinki.model.Users.Company; 4 5 import it.finki.tinki.model.Users.Team; 5 6 import it.finki.tinki.model.Users.User; 6 import it.finki.tinki.model.dto.AccountLoginDTO; 7 import it.finki.tinki.model.dto.AuthResponseDTO; 8 import it.finki.tinki.model.dto.LoginResponseDTO; 9 import it.finki.tinki.model.dto.UserResponseDTO; 7 import it.finki.tinki.model.dto.*; 10 8 import it.finki.tinki.model.enumerator.AccountType; 11 9 import it.finki.tinki.service.AccountService; 12 10 import it.finki.tinki.service.MatchmakerService; 11 import it.finki.tinki.service.WorkService; 12 import org.apache.coyote.Response; 13 13 import org.springframework.web.bind.annotation.*; 14 14 import org.springframework.web.server.ResponseStatusException; … … 23 23 AccountService accountService; 24 24 MatchmakerService matchmakerService; 25 WorkService workService; 25 26 26 public LoginController(AccountService accountService, MatchmakerService matchmakerService ) {27 public LoginController(AccountService accountService, MatchmakerService matchmakerService, WorkService workService) { 27 28 this.accountService = accountService; 28 29 this.matchmakerService = matchmakerService; 30 this.workService = workService; 29 31 } 30 32 … … 35 37 36 38 Account a1 = accountService.findUser(body.getEmail(), body.getPassword(), body.getType()); 39 37 40 if(a1!=null){ 38 41 if(a1.getClass().equals(User.class)){ 39 42 40 43 UserResponseDTO uDto = new UserResponseDTO(); 44 45 uDto.setError(null); 41 46 42 47 uDto.setId(a1.getId()); … … 54 59 55 60 return uDto; 61 56 62 }else if(a1.getClass().equals(Team.class)){ 57 63 64 TeamResponseDTO tDto = new TeamResponseDTO(); 65 66 tDto.setError(null); 67 68 tDto.setId(a1.getId()); 69 tDto.setEmail(a1.getEmail()); 70 tDto.setName(a1.getName()); 71 tDto.setType(AccountType.USER); 72 tDto.setMembers(((Team) a1).getMembers()); 73 74 tDto.setJobs(this.workService.getAllJobsByAccount(a1.getId())); 75 tDto.setProjects(this.workService.getAllProjectsByAccount(a1.getId())); 76 77 return tDto; 78 58 79 }else{ 80 81 CompanyResponseDTO cDto = new CompanyResponseDTO(); 82 83 cDto.setError(null); 84 85 cDto.setId(a1.getId()); 86 cDto.setEmail(a1.getEmail()); 87 cDto.setName(a1.getName()); 88 cDto.setType(AccountType.USER); 89 cDto.setAddress(((Company) a1).getAddress()); 90 91 cDto.setJobs(this.workService.getAllJobsByAccount(a1.getId())); 92 cDto.setInternships(this.workService.getAllInternshipsByAccount(a1.getId())); 93 94 return cDto; 59 95 60 96 } 61 97 } 62 98 63 return n ull;99 return new LoginResponseDTO(); 64 100 } 65 101 -
src/main/java/it/finki/tinki/web/controller/RegisterController.java
r723994f r509cb95 1 1 package it.finki.tinki.web.controller; 2 2 3 import it.finki.tinki.helper.Matchmaker; 4 import it.finki.tinki.model.Jobs.Internship; 5 import it.finki.tinki.model.Jobs.Job; 6 import it.finki.tinki.model.Jobs.Project; 3 7 import it.finki.tinki.model.Skill; 4 8 import it.finki.tinki.model.Users.Account; 9 import it.finki.tinki.model.Users.User; 5 10 import it.finki.tinki.service.AccountService; 11 import it.finki.tinki.service.MatchmakerService; 6 12 import it.finki.tinki.service.SkillService; 13 import it.finki.tinki.service.WorkService; 7 14 import org.springframework.web.bind.annotation.*; 8 15 … … 18 25 AccountService accountService; 19 26 SkillService skillService; 27 WorkService workService; 28 MatchmakerService matchmakerService; 20 29 21 public RegisterController(AccountService accountService, SkillService skillService ) {30 public RegisterController(AccountService accountService, SkillService skillService, WorkService workService, MatchmakerService matchmakerService) { 22 31 this.accountService = accountService; 23 32 this.skillService = skillService; 33 this.workService = workService; 34 this.matchmakerService = matchmakerService; 24 35 } 25 36 26 37 @RequestMapping(path = "/user", method = RequestMethod.POST) 27 38 private Map<String, String> registerUser(@RequestParam String email, 28 29 30 31 32 39 @RequestParam String password, 40 @RequestParam String name, 41 @RequestParam String surname, 42 @RequestParam List<Integer> retainedSkills, 43 @RequestParam List<Integer> skillsToLearn){ 33 44 34 45 List<Skill> retained = this.skillService.returnSkillsBasedOnId(retainedSkills); … … 39 50 Map<String, String> response = new HashMap<>(); 40 51 41 if(k !=null){52 if(k==null){ 42 53 response.put("error", "There was an error when trying to register user."); 43 54 }else{ 55 List<Job> jobs = this.workService.getAllJobs(); 56 List<Project> projects = this.workService.getAllProjects(); 57 List<Internship> internships = this.workService.getAllInternships(); 58 59 jobs.forEach(job -> { 60 this.matchmakerService.setUpUserJobMatches(job, (User) k); 61 }); 62 63 projects.forEach(project -> { 64 this.matchmakerService.setUpUserProjectMatches(project, (User) k); 65 }); 66 67 internships.forEach(internship -> { 68 this.matchmakerService.setUpUserInternshipMatches(internship, (User) k); 69 }); 70 44 71 response.put("success", "Registration completed successfully."); 45 72 } … … 58 85 Map<String, String> response = new HashMap<>(); 59 86 60 if(k !=null){87 if(k==null){ 61 88 response.put("error", "There was an error when trying to register team."); 62 89 }else{ … … 79 106 Map<String, String> response = new HashMap<>(); 80 107 81 if(k !=null){108 if(k==null){ 82 109 response.put("error", "There was an error when trying to register company."); 83 110 }else{
Note:
See TracChangeset
for help on using the changeset viewer.