Advertisement
filouve

resumejobseeker

Nov 20th, 2017
435
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.51 KB | None | 0 0
  1. package org.filip.springbootresumejobseeker.domain;
  2.  
  3. import javax.persistence.Entity;
  4. import javax.persistence.GeneratedValue;
  5. import javax.persistence.GenerationType;
  6. import javax.persistence.Id;
  7. import javax.persistence.OneToMany;
  8. import javax.validation.constraints.Size;
  9. import java.util.Set;
  10. import java.util.TreeSet;
  11.  
  12. @Entity
  13. public class Skill {
  14.  
  15.     @Id
  16.     @GeneratedValue(strategy = GenerationType.AUTO)
  17.     private Long id;
  18.  
  19.     @Size(min = 1)
  20.     private String name;
  21.  
  22.     @OneToMany(mappedBy = "skill")
  23.     private Set<UserSkill> userSkillSet;
  24.  
  25.  
  26.     public Skill() {
  27.         super();
  28.         userSkillSet = new TreeSet<UserSkill>();
  29.     }
  30.  
  31.     public Long getId() {
  32.         return id;
  33.     }
  34.  
  35.     public void setId(Long id) {
  36.         this.id = id;
  37.     }
  38.  
  39.     public String getName() {
  40.         return name;
  41.     }
  42.  
  43.     public void setName(String name) {
  44.         this.name = name;
  45.     }
  46.  
  47.     @Override
  48.     public String toString() {
  49.         return "Skill{" +
  50.                 "id=" + id +
  51.                 ", name='" + name + '\'' +
  52.                 ", userSkillSet=" + userSkillSet +
  53.                 '}';
  54.     }
  55. }
  56.  
  57.  
  58. package org.filip.springbootresumejobseeker.domain;
  59.  
  60. import com.fasterxml.jackson.annotation.JsonManagedReference;
  61. import org.filip.springbootresumejobseeker.validation.annotations.ValidEmail;
  62. import org.hibernate.annotations.CreationTimestamp;
  63. import org.hibernate.annotations.UpdateTimestamp;
  64.  
  65. import javax.persistence.*;
  66. import javax.validation.constraints.Email;
  67. import javax.validation.constraints.NotEmpty;
  68. import javax.validation.constraints.NotNull;
  69. import java.io.Serializable;
  70. import java.time.LocalDateTime;
  71. import java.util.Collection;
  72. import java.util.Iterator;
  73. import java.util.Set;
  74. import java.util.TreeSet;
  75.  
  76. @Entity
  77. @Table(name = "user_account")
  78. public class User implements Serializable {
  79.  
  80.     @Id
  81.     @GeneratedValue(strategy = GenerationType.AUTO)
  82.     private Long id;
  83.  
  84.     @NotNull
  85.     private String firstName;
  86.  
  87.     @NotNull
  88.     private String lastName;
  89.  
  90.     @ValidEmail
  91.     @NotNull
  92.     @Column(nullable = false, unique = true)
  93.     private String email;
  94.  
  95.     @Column(length = 60)
  96.     private String password;
  97.  
  98.     private boolean enabled;
  99.  
  100.     // The timezone
  101.     @Column(name = "TZONE", nullable = false, length = 128)
  102.     private String timezone;
  103.  
  104.     @UpdateTimestamp
  105.     private LocalDateTime lastUpdatedDate;
  106.  
  107.     @CreationTimestamp
  108.     private LocalDateTime createdDate;
  109.  
  110.     @ManyToMany(fetch = FetchType.EAGER)
  111.     @JsonManagedReference
  112.     @JoinTable(name = "users_roles", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
  113.             inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
  114.     private Collection<Role> roles;
  115.  
  116.     // Specific for resume job seeker
  117.  
  118.     @OneToMany(mappedBy = "user")
  119.     private Set<UserSkill> userSkillSet;
  120.  
  121.     public User() {
  122.         super();
  123.         this.enabled = false;
  124.         this.timezone = "Europe/Brussels";
  125.         userSkillSet =  new TreeSet<UserSkill>();
  126.     }
  127.  
  128.     public Long getId() {
  129.         return id;
  130.     }
  131.  
  132.     public void setId(final Long id) {
  133.         this.id = id;
  134.     }
  135.  
  136.     public String getFirstName() {
  137.         return firstName;
  138.     }
  139.  
  140.     public void setFirstName(final String firstName) {
  141.         this.firstName = firstName;
  142.     }
  143.  
  144.     public String getLastName() {
  145.         return lastName;
  146.     }
  147.  
  148.     public void setLastName(final String lastName) {
  149.         this.lastName = lastName;
  150.     }
  151.  
  152.     public String getEmail() {
  153.         return email;
  154.     }
  155.  
  156.     public void setEmail(final String username) {
  157.         this.email = username;
  158.     }
  159.  
  160.     public String getPassword() {
  161.         return password;
  162.     }
  163.  
  164.     public void setPassword(final String password) {
  165.         this.password = password;
  166.     }
  167.  
  168.     public Collection<Role> getRoles() {
  169.         return roles;
  170.     }
  171.  
  172.     public void setRoles(final Collection<Role> roles) {
  173.         this.roles = roles;
  174.     }
  175.  
  176.     public String printRoles() {
  177.  
  178.         Iterator iterator = getRoles().iterator();
  179.         String out = "";
  180.         while (iterator.hasNext()) {
  181.             Role rr = (Role) iterator.next();
  182.             out += rr.getName();
  183.             out += " - ";
  184.         }
  185.         return out;
  186.  
  187.     }
  188.  
  189.     public boolean isEnabled() {
  190.         return enabled;
  191.     }
  192.  
  193.     public void setEnabled(final boolean enabled) {
  194.         this.enabled = enabled;
  195.     }
  196.  
  197.     public String getTimezone() {
  198.         return timezone;
  199.     }
  200.  
  201.  
  202.     public void setTimezone(String timezone) {
  203.         this.timezone = timezone;
  204.     }
  205.  
  206.     public LocalDateTime getLastUpdatedDate() {
  207.         return lastUpdatedDate;
  208.     }
  209.  
  210.     public void setLastUpdatedDate(LocalDateTime lastUpdatedDate) {
  211.         this.lastUpdatedDate = lastUpdatedDate;
  212.     }
  213.  
  214.     public LocalDateTime getCreatedDate() {
  215.         return createdDate;
  216.     }
  217.  
  218.     public void setCreatedDate(LocalDateTime createdDate) {
  219.         this.createdDate = createdDate;
  220.     }
  221.  
  222.     public Set<UserSkill> getUserSkillSet() {
  223.         return userSkillSet;
  224.     }
  225.  
  226.     public void setUserSkillSet(Set<UserSkill> userSkillSet) {
  227.         this.userSkillSet = userSkillSet;
  228.     }
  229.  
  230.     @Override
  231.     public int hashCode() {
  232.         final int prime = 31;
  233.         int result = 1;
  234.         result = (prime * result) + ((email == null) ? 0 : email.hashCode());
  235.         return result;
  236.     }
  237.  
  238.     @Override
  239.     public boolean equals(final Object obj) {
  240.         if (this == obj) {
  241.             return true;
  242.         }
  243.         if (obj == null) {
  244.             return false;
  245.         }
  246.         if (getClass() != obj.getClass()) {
  247.             return false;
  248.         }
  249.         final User user = (User) obj;
  250.         if (!email.equals(user.email)) {
  251.             return false;
  252.         }
  253.         return true;
  254.     }
  255.  
  256.     @Override
  257.     public String toString() {
  258.  
  259.         return "User met id= " + id + " en Voornaam= " + firstName + " en Familienaam= " + lastName + "\n\n"
  260.                 + " en password= " + password + " en is enabled= " + enabled + " en heeft de rollen= "
  261.                 + roles;
  262.  
  263.     }
  264. }
  265.  
  266. package org.filip.springbootresumejobseeker.domain;
  267.  
  268. import javax.persistence.CascadeType;
  269. import javax.persistence.Entity;
  270. import javax.persistence.GeneratedValue;
  271. import javax.persistence.GenerationType;
  272. import javax.persistence.Id;
  273. import javax.persistence.JoinColumn;
  274. import javax.persistence.ManyToOne;
  275. import javax.persistence.Table;
  276.  
  277. @Entity
  278. @Table(name = "users_skills")
  279. public class UserSkill {
  280.  
  281.     @Id
  282.     @GeneratedValue(strategy = GenerationType.AUTO)
  283.     private Long id;
  284.  
  285.     @ManyToOne(cascade = CascadeType.ALL)
  286.     @JoinColumn(name = "user_id")
  287.     private User user;
  288.  
  289.     @ManyToOne(cascade = CascadeType.ALL)
  290.     @JoinColumn(name = "skill_id")
  291.     private Skill skill;
  292.  
  293.     private String skillRatingInStars;
  294.     private String selectValue;
  295.     private String rating;
  296.  
  297.     public Long getId() {
  298.         return id;
  299.     }
  300.  
  301.     public void setId(Long id) {
  302.         this.id = id;
  303.     }
  304.  
  305.     public User getUser() {
  306.         return user;
  307.     }
  308.  
  309.     public void setUser(User user) {
  310.         this.user = user;
  311.     }
  312.  
  313.     public Skill getSkill() {
  314.         return skill;
  315.     }
  316.  
  317.     public void setSkill(Skill skill) {
  318.         this.skill = skill;
  319.     }
  320.  
  321.     public String getSkillRatingInStars() {
  322.         return skillRatingInStars;
  323.     }
  324.  
  325.     public void setSkillRatingInStars(String skillRatingInStars) {
  326.         this.skillRatingInStars = skillRatingInStars;
  327.     }
  328.  
  329.     public String getSelectValue() {
  330.         return selectValue;
  331.     }
  332.  
  333.     public void setSelectValue(String selectValue) {
  334.         this.selectValue = selectValue;
  335.     }
  336.  
  337.     public String getRating() {
  338.         return rating;
  339.     }
  340.  
  341.     public void setRating(String rating) {
  342.         this.rating = rating;
  343.     }
  344.  
  345.     @Override
  346.     public String toString() {
  347.         return "UserSkill{" +
  348.                 "id=" + id +
  349.                 ", user=" + user.toString() +
  350.                 ", skill=" + skill.toString() +
  351.                 ", skillRatingInStars='" + skillRatingInStars + '\'' +
  352.                 ", selectValue='" + selectValue + '\'' +
  353.                 ", rating='" + rating + '\'' +
  354.                 '}';
  355.     }
  356. }
  357.  
  358. package org.filip.springbootresumejobseeker.web.controllers;
  359.  
  360. import org.filip.springbootresumejobseeker.domain.Skill;
  361. import org.filip.springbootresumejobseeker.services.IResumeService;
  362. import org.springframework.beans.factory.annotation.Autowired;
  363. import org.springframework.stereotype.Controller;
  364. import org.springframework.ui.Model;
  365. import org.springframework.web.bind.annotation.GetMapping;
  366.  
  367. @Controller
  368. public class ResumeController {
  369.  
  370.     @Autowired
  371.     private IResumeService resumeService;
  372.  
  373.     /**
  374.      * Get all skills and tools etc for the resume
  375.      * @return
  376.      */
  377.     @GetMapping("/resume")
  378.     public String getAll(Model model){
  379.  
  380.         model.addAttribute("skills", resumeService.getAllSkills());
  381.         //model.addAttribute("tools",resumeService.getAllTools());
  382.  
  383.         return "separateprojects/resume";
  384.  
  385.     }
  386.  
  387.     // CRUD
  388.  
  389.     @GetMapping("/createSkill")
  390.     public String createSkill(Model model){
  391.         model.addAttribute("skill", new Skill());
  392.         return "separateprojects/skillcreate";
  393.     }
  394.  
  395. }
  396.  
  397. package org.filip.springbootresumejobseeker;
  398.  
  399. import org.filip.springbootresumejobseeker.domain.Privilege;
  400. import org.filip.springbootresumejobseeker.domain.Role;
  401. import org.filip.springbootresumejobseeker.domain.Skill;
  402. import org.filip.springbootresumejobseeker.domain.User;
  403. import org.filip.springbootresumejobseeker.domain.UserSkill;
  404. import org.filip.springbootresumejobseeker.persistence.repositories.PrivilegeRepository;
  405. import org.filip.springbootresumejobseeker.persistence.repositories.RoleRepository;
  406. import org.filip.springbootresumejobseeker.persistence.repositories.SkillRepository;
  407. import org.filip.springbootresumejobseeker.persistence.repositories.UserRepository;
  408. import org.filip.springbootresumejobseeker.persistence.repositories.UserSkillRepository;
  409. import org.junit.Test;
  410. import org.junit.runner.RunWith;
  411. import org.springframework.beans.factory.annotation.Autowired;
  412. import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
  413. import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
  414. import org.springframework.boot.test.context.SpringBootTest;
  415. import org.springframework.context.annotation.Primary;
  416. import org.springframework.scheduling.annotation.Async;
  417. import org.springframework.test.context.junit4.SpringRunner;
  418.  
  419. import java.util.Arrays;
  420. import java.util.List;
  421.  
  422. @RunWith(SpringRunner.class)
  423. @SpringBootTest
  424. @DataJpaTest
  425. public class SpringbootresumejobseekerApplicationTests {
  426.  
  427.     @Autowired
  428.     private TestEntityManager entityManager;
  429.  
  430.     @Autowired
  431.     private SkillRepository skillRepository;
  432.  
  433.     @Autowired
  434.     private UserRepository userRepository;
  435.  
  436.     @Autowired
  437.     private UserSkillRepository userSkillRepository;
  438.  
  439.     @Autowired
  440.     private PrivilegeRepository privilegeRepository;
  441.  
  442.     @Autowired
  443.     private RoleRepository roleRepository;
  444.  
  445.     @Test
  446.     public void contextLoads() {
  447.     }
  448.  
  449.  
  450.     @Test
  451.     public void save_user_with_skill(){
  452.  
  453.         Privilege privilege = new Privilege("TEST_PRIVILEGE");
  454.         privilegeRepository.save(privilege);
  455.  
  456.         Role role = new Role("TEST_ROLE");
  457.         role.setPrivileges(Arrays.asList(privilege));
  458.         roleRepository.save(role);
  459.  
  460.         User user = new User();
  461.         user.setFirstName("Firstname");
  462.         user.setLastName("lastname");
  463.         user.setEnabled(true);
  464.         user.setRoles(Arrays.asList(role));
  465.         user.setPassword("test");
  466.         user.setEmail("test@test.com");
  467.  
  468.         userRepository.save(user);
  469.  
  470.         Skill skill = new Skill();
  471.         skill.setName("Skill 1");
  472.  
  473.         skillRepository.save(skill);
  474.  
  475.         UserSkill userSkill = new UserSkill();
  476.         userSkill.setRating("5rating");
  477.         userSkill.setSelectValue("5value");
  478.         userSkill.setSkillRatingInStars("stars5");
  479.  
  480.         userSkill.setSkill(skill);
  481.         userSkill.setUser(user);
  482.  
  483.         userSkillRepository.save(userSkill);
  484.  
  485.         List<UserSkill> userSkillList = userSkillRepository.findAll();
  486.  
  487.         for(UserSkill userSkill1 : userSkillList){
  488.             System.out.println(userSkill1.getId() + " - " + userSkill1.getRating() + " - " + userSkill1.getSelectValue() +
  489.             " - " + userSkill1.getSkillRatingInStars() + " - " + userSkill1.getUser().getFirstName() + " - " + userSkill1.getSkill().getName());
  490.         }
  491.  
  492.  
  493.     }
  494.  
  495. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement