Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ public record FindMemberRequest(
@Schema(description = "부서 이름", example = "1")
String departmentName,

@NotNull
@Schema(description = "회원 역할", example = "ROLE_USER")
MemberRole role

//TODO: 가입일 추가


) {}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@
import clap.server.adapter.outbound.persistense.entity.member.constant.MemberRole;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDateTime;

public record RetrieveAllMemberResponse(
@Schema(description = "회원 ID", example = "1")
Long memberId,

@Schema(description = "회원 이름", example = "양시훈")
String name,

Expand All @@ -23,5 +28,10 @@ public record RetrieveAllMemberResponse(
MemberRole role,

@Schema(description = "회원 직책", example = "개발자")
String departmentRole
String departmentRole,

@Schema(description = "가입일", example = "2024-01-01T12:00:00")
LocalDateTime createdAt


) {}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,16 @@
import clap.server.adapter.outbound.persistense.mapper.common.PersistenceMapper;
import clap.server.domain.model.member.Department;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

@Mapper(componentModel = "spring", uses = {MemberPersistenceMapper.class})
@Mapper(componentModel = "spring", uses = {MemberPersistenceMapper.class})
public interface DepartmentPersistenceMapper extends PersistenceMapper<DepartmentEntity, Department> {
}

@Mapping(source = "admin.memberId", target = "adminId")
@Mapping(source = "name", target = "code")
Department toDomain(DepartmentEntity entity);

@Mapping(source = "code", target = "name")
@Mapping(source = "adminId", target = "admin.memberId")
DepartmentEntity toEntity(Department domain);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@

import clap.server.adapter.outbound.persistense.entity.member.MemberEntity;
import clap.server.domain.model.member.Member;
import clap.server.domain.model.member.MemberInfo;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.springframework.beans.factory.annotation.Autowired;

@Mapper(componentModel = "spring", uses = {DepartmentPersistenceMapper.class})
public interface MemberPersistenceMapper {
public abstract class MemberPersistenceMapper {

@Autowired
protected DepartmentPersistenceMapper departmentPersistenceMapper;

@Mapping(source = "name", target = "memberInfo.name")
@Mapping(source = "email", target = "memberInfo.email")
Expand All @@ -15,8 +21,11 @@ public interface MemberPersistenceMapper {
@Mapping(source = "departmentRole", target = "memberInfo.departmentRole")
@Mapping(source = "department", target = "memberInfo.department")
@Mapping(source = "reviewer", target = "memberInfo.isReviewer")
@Mapping(source = "admin", target = "admin")
Member toDomain(MemberEntity entity);
@Mapping(source = "admin", target = "admin", qualifiedByName = "toDomain")
@Mapping(source = "createdAt", target = "createdAt")
@Mapping(source = "updatedAt", target = "updatedAt")
@Mapping(source = "memberId", target = "memberId")
public abstract Member toDomain(MemberEntity entity);

@Mapping(source = "memberInfo.name", target = "name")
@Mapping(source = "memberInfo.email", target = "email")
Expand All @@ -25,12 +34,45 @@ public interface MemberPersistenceMapper {
@Mapping(source = "memberInfo.departmentRole", target = "departmentRole")
@Mapping(source = "memberInfo.department", target = "department")
@Mapping(source = "memberInfo.reviewer", target = "isReviewer")
@Mapping(target = "admin", source = "admin")
MemberEntity toEntity(Member member);
@Mapping(source = "admin", target = "admin", qualifiedByName = "toEntity")
@Mapping(source = "createdAt", target = "createdAt")
@Mapping(source = "updatedAt", target = "updatedAt")
@Mapping(source = "memberId", target = "memberId")
public abstract MemberEntity toEntity(Member member);

default boolean mapReviewer(boolean reviewer) {
return reviewer;
@Named("toDomain")
protected Member toDomainAdmin(MemberEntity admin) {
if (admin == null) return null;
return Member.builder()
.memberId(admin.getMemberId())
.memberInfo(new MemberInfo(
admin.getName(),
admin.getEmail(),
admin.getNickname(),
admin.isReviewer(),
departmentPersistenceMapper.toDomain(admin.getDepartment()),
admin.getRole(),
admin.getDepartmentRole()
))
.createdAt(admin.getCreatedAt())
.updatedAt(admin.getUpdatedAt())
.build();
}
}


@Named("toEntity")
protected MemberEntity toEntityAdmin(Member admin) {
if (admin == null) return null;
return MemberEntity.builder()
.memberId(admin.getMemberId())
.name(admin.getMemberInfo().getName())
.email(admin.getMemberInfo().getEmail())
.nickname(admin.getMemberInfo().getNickname())
.isReviewer(admin.getMemberInfo().isReviewer())
.department(departmentPersistenceMapper.toEntity(admin.getMemberInfo().getDepartment()))
.role(admin.getMemberInfo().getRole())
.departmentRole(admin.getMemberInfo().getDepartmentRole())
.createdAt(admin.getCreatedAt())
.updatedAt(admin.getUpdatedAt())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ public List<RetrieveAllMemberResponse> toResponseList(List<Member> members) {

public RetrieveAllMemberResponse toResponse(Member member) {
return new RetrieveAllMemberResponse(
member.getMemberId(),
member.getMemberInfo().getName(),
member.getMemberInfo().getEmail(),
member.getMemberInfo().getNickname(),
member.getMemberInfo().isReviewer(),
member.getMemberInfo().getDepartment().getName(),
member.getMemberInfo().getRole(),
member.getMemberInfo().getDepartmentRole()
member.getMemberInfo().getDepartmentRole(),
member.getCreatedAt()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import java.time.LocalDateTime;

@Getter
@SuperBuilder
@SuperBuilder(toBuilder = true)
@MappedSuperclass
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class BaseTime {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/clap/server/domain/model/member/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import lombok.experimental.SuperBuilder;

@Getter
@SuperBuilder
@SuperBuilder(toBuilder = true)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class Member extends BaseTime {
Expand All @@ -24,7 +24,7 @@ public class Member extends BaseTime {
private MemberStatus status;
private String password;

@Builder
// @Builder가 Lombok과 충돓하여 삭제
public Member(MemberInfo memberInfo, Boolean agitNotificationEnabled, Boolean emailNotificationEnabled, Boolean kakaoworkNotificationEnabled,
Member admin, String imageUrl, MemberStatus status, String password) {
this.memberInfo = memberInfo;
Expand Down