From 60f2de1b5b8dc8055d1e8400812fa185d5b076c5 Mon Sep 17 00:00:00 2001 From: Denis Istratov Date: Mon, 3 Jul 2023 00:20:16 +0300 Subject: [PATCH] 0.0.12, new fields of User --- .../easystartup/web/domain/model/User.java | 19 +++++++++++++++-- .../site/easystartup/web/dto/UserDto.java | 6 ++++++ .../web/project/domain/model/Tag.java | 2 +- .../easystartup/web/request/UserRequest.java | 9 ++++++++ .../easystartup/web/service/UserService.java | 21 +++++++++++-------- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/main/java/site/easystartup/web/domain/model/User.java b/src/main/java/site/easystartup/web/domain/model/User.java index 9db34c4..545fe03 100644 --- a/src/main/java/site/easystartup/web/domain/model/User.java +++ b/src/main/java/site/easystartup/web/domain/model/User.java @@ -26,10 +26,14 @@ public class User implements UserDetails { private String status; private String iconPath; private String email; + private String about; + private String country; + private String city; + @ElementCollection(targetClass = String.class, fetch = FetchType.EAGER) - @CollectionTable(name = "user_tag", joinColumns = @JoinColumn(name = "user_id")) - private Set tags; + @CollectionTable(name = "user_technologies", joinColumns = @JoinColumn(name = "user_id")) + private Set technologies; @ElementCollection(targetClass = String.class, fetch = FetchType.EAGER) @CollectionTable(name = "user_profession", joinColumns = @JoinColumn(name = "user_id")) @@ -47,6 +51,17 @@ public class User implements UserDetails { @Enumerated(EnumType.STRING) private Set roles; + @ElementCollection(targetClass = String.class, fetch = FetchType.EAGER) + @CollectionTable(name = "user_lang", joinColumns = @JoinColumn(name = "user_id")) + @Enumerated(EnumType.STRING) + private Set langs; + + @ElementCollection + @CollectionTable(name = "user_contact", + joinColumns = {@JoinColumn(name = "user_id")}) + @MapKeyColumn(name = "media") + private Map contacts; + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/src/main/java/site/easystartup/web/dto/UserDto.java b/src/main/java/site/easystartup/web/dto/UserDto.java index f37008e..83f0f7b 100644 --- a/src/main/java/site/easystartup/web/dto/UserDto.java +++ b/src/main/java/site/easystartup/web/dto/UserDto.java @@ -6,6 +6,7 @@ import site.easystartup.web.project.domain.model.Participant; import java.io.Serializable; import java.util.List; +import java.util.Map; import java.util.Set; @Data @@ -22,4 +23,9 @@ public class UserDto implements Serializable { private Set projects; private List requests; private Set roles; + private String about; + private String country; + private String city; + private Set langs; + private Map contacts; } diff --git a/src/main/java/site/easystartup/web/project/domain/model/Tag.java b/src/main/java/site/easystartup/web/project/domain/model/Tag.java index b7cbad7..ed0479f 100644 --- a/src/main/java/site/easystartup/web/project/domain/model/Tag.java +++ b/src/main/java/site/easystartup/web/project/domain/model/Tag.java @@ -22,7 +22,7 @@ public class Tag { @Column(name = "tage_name") private String tagName; - @ManyToMany(mappedBy = "technology") + @ManyToMany(mappedBy = "projects") @ToString.Exclude private Set projects; diff --git a/src/main/java/site/easystartup/web/request/UserRequest.java b/src/main/java/site/easystartup/web/request/UserRequest.java index 0378cbc..5514448 100644 --- a/src/main/java/site/easystartup/web/request/UserRequest.java +++ b/src/main/java/site/easystartup/web/request/UserRequest.java @@ -11,6 +11,7 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; import java.util.List; +import java.util.Map; import java.util.Set; @Data @@ -35,4 +36,12 @@ public class UserRequest { private Set projects; private List requests; private Set roles; + @Size(max = 1000, message = "Status should be no more 1000 signs") + private String about; + @Size(max = 100, message = "Status should be no more 100 signs") + private String country; + @Size(max = 100, message = "Status should be no more 100 signs") + private String city; + private Set langs; + private Map contacts; } diff --git a/src/main/java/site/easystartup/web/service/UserService.java b/src/main/java/site/easystartup/web/service/UserService.java index f04aa11..74ea93b 100644 --- a/src/main/java/site/easystartup/web/service/UserService.java +++ b/src/main/java/site/easystartup/web/service/UserService.java @@ -1,7 +1,6 @@ package site.easystartup.web.service; import lombok.RequiredArgsConstructor; -import org.apache.tomcat.util.http.fileupload.FileUpload; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UsernameNotFoundException; @@ -12,7 +11,7 @@ import site.easystartup.web.request.UserRequest; import site.easystartup.web.storage.service.StorageService; import java.security.Principal; -import java.util.TreeSet; +import java.util.Collections; @Service @RequiredArgsConstructor @@ -46,13 +45,17 @@ public class UserService { user.setStatus(userRequest.getStatus()); if(userRequest.getIcon() != null) storageService.saveImage(userRequest.getIcon(), username + "-icon"); - user.setIconPath(user.getIconPath() == null ? user.getIconPath() : username + "-icon.jpg"); - - user.setEmail(userRequest.getEmail() == null ? user.getEmail() : userRequest.getEmail()); - user.setTags(userRequest.getTags() == null ? user.getTags() : userRequest.getTags()); - user.setProfessions(userRequest.getProfessions() == null ? user.getProfessions() : userRequest.getProfessions()); - user.setProjects(userRequest.getProjects() == null ? user.getProjects() : userRequest.getProjects()); - user.setRequests(userRequest.getRequests() == null ? user.getRequests() : userRequest.getRequests()); + user.setIconPath(user.getIconPath() == null ? "" : username + "-icon.jpg"); + user.setEmail(userRequest.getEmail() == null ? "" : userRequest.getEmail()); + user.setTechnologies(userRequest.getTags() == null ? Collections.emptySet() : userRequest.getTags()); + user.setProfessions(userRequest.getProfessions() == null ? Collections.emptySet() : userRequest.getProfessions()); + user.setProjects(userRequest.getProjects() == null ? Collections.emptySet() : userRequest.getProjects()); + user.setRequests(userRequest.getRequests() == null ? Collections.emptyList() : userRequest.getRequests()); + user.setAbout(userRequest.getAbout() == null ? "" : userRequest.getAbout()); + user.setCountry(userRequest.getCountry() == null ? "" : userRequest.getCountry()); + user.setCity(userRequest.getCity() == null ? "" : userRequest.getCity()); + user.setLangs(userRequest.getLangs() == null ? Collections.emptySet() : userRequest.getLangs()); + user.setContacts(userRequest.getContacts() == null ? Collections.emptyMap() : userRequest.getContacts()); return userRepo.save(user); }