diff --git a/src/main/java/org/slams/server/user/dto/response/DefaultUserDto.java b/src/main/java/org/slams/server/user/dto/response/DefaultUserDto.java new file mode 100644 index 00000000..c8735025 --- /dev/null +++ b/src/main/java/org/slams/server/user/dto/response/DefaultUserDto.java @@ -0,0 +1,51 @@ +package org.slams.server.user.dto.response; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.slams.server.user.entity.Position; +import org.slams.server.user.entity.Proficiency; +import org.slams.server.user.entity.Role; +import org.slams.server.user.entity.User; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class DefaultUserDto { + + private Long id; + private String email; + private String nickname; + private String profileImage; + private String description; + private Role role; + private Proficiency proficiency; + private List positions = new ArrayList<>(); + private LocalDateTime createdAt; + private LocalDateTime updatedAt; + + private DefaultUserDto(Long id, String email, String nickname, String profileImage, + String description, Role role, Proficiency proficiency, List positions, + LocalDateTime createdAt, LocalDateTime updatedAt) { + this.id = id; + this.email = email; + this.nickname = nickname; + this.profileImage = profileImage; + this.description = description; + this.role = role; + this.proficiency = proficiency; + this.positions = positions; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + } + + public static DefaultUserDto toDto(User user){ + return new DefaultUserDto(user.getId(), user.getEmail(), user.getNickname(), user.getProfileImage(), + user.getDescription(), user.getRole(), user.getProficiency(), user.getPositions(), + user.getCreatedAt(), user.getUpdateAt()); + } + +} diff --git a/src/main/java/org/slams/server/user/dto/response/DefaultUserInfoResponse.java b/src/main/java/org/slams/server/user/dto/response/DefaultUserInfoResponse.java index 82605406..c783e522 100644 --- a/src/main/java/org/slams/server/user/dto/response/DefaultUserInfoResponse.java +++ b/src/main/java/org/slams/server/user/dto/response/DefaultUserInfoResponse.java @@ -18,40 +18,16 @@ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class DefaultUserInfoResponse { - private Long userId; - private String email; - private String nickname; - private String profileImage; - private String description; - private Role role; - private Proficiency proficiency; - private List positions; - private LocalDateTime createdAt; - private LocalDateTime updatedAt; + private DefaultUserDto user; private List notifications; - public DefaultUserInfoResponse(Long userId, String email, String nickname, - String profileImage, String description, Role role, - Proficiency proficiency, List positions, - LocalDateTime createdAt, LocalDateTime updatedAt, - List notifications) { - this.userId = userId; - this.email = email; - this.nickname = nickname; - this.profileImage = profileImage; - this.description = description; - this.role = role; - this.proficiency = proficiency; - this.positions = positions; - this.createdAt = createdAt; - this.updatedAt = updatedAt; + private DefaultUserInfoResponse(DefaultUserDto user, List notifications) { + this.user = user; this.notifications = notifications; } public static DefaultUserInfoResponse toResponse(User user, List notifications) { - return new DefaultUserInfoResponse(user.getId(), user.getEmail(), user.getNickname(), user.getProfileImage(), - user.getDescription(), user.getRole(), user.getProficiency(), user.getPositions(), - user.getCreatedAt(), user.getUpdateAt(), notifications); + return new DefaultUserInfoResponse(DefaultUserDto.toDto(user), notifications); } } diff --git a/src/main/java/org/slams/server/user/dto/response/UserResponse.java b/src/main/java/org/slams/server/user/dto/response/UserResponse.java new file mode 100644 index 00000000..1bc65f08 --- /dev/null +++ b/src/main/java/org/slams/server/user/dto/response/UserResponse.java @@ -0,0 +1,54 @@ +package org.slams.server.user.dto.response; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.slams.server.user.entity.Position; +import org.slams.server.user.entity.Proficiency; +import org.slams.server.user.entity.Role; +import org.slams.server.user.entity.User; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Getter +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class UserResponse { + + private Long id; + private String socialId; + private String email; + private String nickname; + private String profileImage; + private String description; + private Role role; + private Proficiency proficiency; + private List positions = new ArrayList<>(); + private LocalDateTime createdAt; + private LocalDateTime updatedAt; + + private UserResponse(Long id, String socialId, String email, String nickname, + String profileImage, String description, + Role role, Proficiency proficiency, List positions, + LocalDateTime createdAt, LocalDateTime updatedAt) { + this.id = id; + this.socialId = socialId; + this.email = email; + this.nickname = nickname; + this.profileImage = profileImage; + this.description = description; + this.role = role; + this.proficiency = proficiency; + this.positions = positions; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + } + + public static UserResponse toResponse(User user){ + return new UserResponse(user.getId(), user.getSocialId(), user.getEmail(), user.getNickname(), + user.getProfileImage(), user.getDescription(), user.getRole(), user.getProficiency(), user.getPositions(), + user.getCreatedAt(), user.getUpdateAt()); + } + +}