Skip to content

Commit 2e66442

Browse files
committed
feat : member, provide create update Services
1 parent 66763ee commit 2e66442

File tree

15 files changed

+161
-53
lines changed

15 files changed

+161
-53
lines changed
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package org.fontory.fontorybe.common.controller;
22

33
import org.springframework.beans.factory.annotation.Value;
4-
import org.springframework.stereotype.Controller;
54
import org.springframework.web.bind.annotation.GetMapping;
6-
import org.springframework.web.bind.annotation.ResponseBody;
5+
import org.springframework.web.bind.annotation.RestController;
76

8-
@Controller
7+
@RestController
98
public class HealthCheck {
109

1110
@Value("${commit.hash}")
1211
public String commitHash;
1312

14-
@ResponseBody
1513
@GetMapping("/health-check")
1614
public String healthCheck() { return commitHash; }
1715
}

src/main/java/org/fontory/fontorybe/common/domain/BaseEntity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import jakarta.persistence.EntityListeners;
55
import jakarta.persistence.MappedSuperclass;
66
import java.time.LocalDateTime;
7-
import lombok.AllArgsConstructor;
7+
8+
import lombok.AccessLevel;
89
import lombok.Getter;
10+
import lombok.NoArgsConstructor;
911
import lombok.experimental.SuperBuilder;
1012
import org.springframework.data.annotation.CreatedDate;
1113
import org.springframework.data.annotation.LastModifiedDate;
@@ -14,6 +16,8 @@
1416
@EntityListeners(AuditingEntityListener.class)
1517
@Getter
1618
@MappedSuperclass
19+
@SuperBuilder
20+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
1721
public class BaseEntity {
1822

1923
@CreatedDate

src/main/java/org/fontory/fontorybe/member/controller/port/MemberService.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import org.fontory.fontorybe.member.domain.Member;
44
import org.fontory.fontorybe.member.domain.dto.MemberCreateDto;
5-
import org.fontory.fontorybe.provide.domain.Provide;
5+
import org.fontory.fontorybe.member.domain.dto.MemberUpdateDto;
66

77
public interface MemberService {
8-
Member getById(Long id);
9-
Member create(MemberCreateDto memberCreateDto, Provide provide);
8+
Member getOrThrowById(Long id);
9+
Member create(MemberCreateDto memberCreateDto, Long provideId);
10+
Member update(Long memberId, MemberUpdateDto memberUpdateDto);
1011
}

src/main/java/org/fontory/fontorybe/member/domain/Member.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import lombok.Getter;
99
import lombok.NoArgsConstructor;
1010
import org.fontory.fontorybe.member.domain.dto.MemberCreateDto;
11+
import org.fontory.fontorybe.member.domain.dto.MemberUpdateDto;
1112
import org.fontory.fontorybe.member.infrastructure.entity.Gender;
1213
import org.fontory.fontorybe.provide.domain.Provide;
1314
import org.fontory.fontorybe.provide.infrastructure.entity.ProvideEntity;
@@ -46,4 +47,17 @@ public static Member from(MemberCreateDto memberCreateDto, Provide provide) {
4647
.provideId(provide.getId())
4748
.build();
4849
}
50+
51+
public Member update(MemberUpdateDto memberUpdateDto) {
52+
return Member.builder()
53+
.id(this.id)
54+
.nickname(memberUpdateDto.getNickname())
55+
.gender(memberUpdateDto.getGender())
56+
.birth(memberUpdateDto.getBirth())
57+
.terms(memberUpdateDto.getTerms())
58+
.profileImage(memberUpdateDto.getProfileImage())
59+
.createdAt(this.createdAt)
60+
.provideId(this.provideId)
61+
.build();
62+
}
4963
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.fontory.fontorybe.member.domain.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Getter;
6+
import org.fontory.fontorybe.member.infrastructure.entity.Gender;
7+
8+
import java.time.LocalDate;
9+
10+
@Getter
11+
@Builder
12+
@AllArgsConstructor
13+
public class MemberUpdateDto {
14+
private String nickname;
15+
private Gender gender;
16+
private LocalDate birth;
17+
private Boolean terms;
18+
private String profileImage;
19+
}

src/main/java/org/fontory/fontorybe/member/infrastructure/entity/MemberEntity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@
1616
import lombok.Builder;
1717
import lombok.Getter;
1818
import lombok.NoArgsConstructor;
19+
import lombok.experimental.SuperBuilder;
1920
import org.fontory.fontorybe.common.domain.BaseEntity;
2021
import org.fontory.fontorybe.member.domain.Member;
2122

2223
@Entity
2324
@Getter
24-
@Builder
2525
@Table(name = "member")
2626
@NoArgsConstructor(access = AccessLevel.PROTECTED)
2727
@AllArgsConstructor(access = AccessLevel.PRIVATE)
28+
@SuperBuilder
2829
public class MemberEntity extends BaseEntity {
2930

3031
@Id
@@ -68,6 +69,7 @@ public static MemberEntity from(Member member) {
6869
.terms(member.isTerms())
6970
.profileImage(member.getProfileImage())
7071
.provideId(member.getProvideId())
72+
.createdAt(member.getCreatedAt())
7173
.build();
7274
}
7375
}

src/main/java/org/fontory/fontorybe/member/service/MemberServiceImpl.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,35 @@
44
import org.fontory.fontorybe.member.controller.port.MemberService;
55
import org.fontory.fontorybe.member.domain.Member;
66
import org.fontory.fontorybe.member.domain.dto.MemberCreateDto;
7+
import org.fontory.fontorybe.member.domain.dto.MemberUpdateDto;
78
import org.fontory.fontorybe.member.service.port.MemberRepository;
9+
import org.fontory.fontorybe.provide.controller.port.ProvideService;
810
import org.fontory.fontorybe.provide.domain.Provide;
911
import org.springframework.stereotype.Service;
1012

1113
@Service
1214
@RequiredArgsConstructor
1315
public class MemberServiceImpl implements MemberService {
1416
private final MemberRepository memberRepository;
17+
private final ProvideService provideService;
1518

1619
@Override
17-
public Member getById(Long id) {
20+
public Member getOrThrowById(Long id) {
1821
return memberRepository.findById(id)
1922
.orElseThrow(RuntimeException::new);
2023
}
2124

2225
@Override
23-
public Member create(MemberCreateDto memberCreateDto, Provide provide) {
26+
public Member create(MemberCreateDto memberCreateDto, Long provideId) {
27+
Provide provide = provideService.getOrThrownById(provideId);
2428
Member member = Member.from(memberCreateDto, provide);
29+
2530
return memberRepository.save(member);
2631
}
32+
33+
@Override
34+
public Member update(Long memberId, MemberUpdateDto memberUpdateDto) {
35+
Member member = getOrThrowById(memberId);
36+
return memberRepository.save(member.update(memberUpdateDto));
37+
}
2738
}

src/main/java/org/fontory/fontorybe/provide/controller/port/ProvideService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
import org.fontory.fontorybe.provide.domain.dto.ProvideCreateDto;
55

66
public interface ProvideService {
7-
Provide getById(Long id);
7+
Provide getOrThrownById(Long id);
88
Provide create(ProvideCreateDto provideCreateDto);
99
}

src/main/java/org/fontory/fontorybe/provide/infrastructure/entity/ProvideEntity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import lombok.Builder;
1414
import lombok.Getter;
1515
import lombok.NoArgsConstructor;
16+
import lombok.experimental.SuperBuilder;
1617
import org.fontory.fontorybe.common.domain.BaseEntity;
1718
import org.fontory.fontorybe.provide.domain.Provide;
1819

@@ -21,7 +22,7 @@
2122
@Table(name = "provide")
2223
@NoArgsConstructor(access = AccessLevel.PROTECTED)
2324
@AllArgsConstructor(access = AccessLevel.PRIVATE)
24-
@Builder
25+
@SuperBuilder
2526
public class ProvideEntity extends BaseEntity {
2627

2728
@Id
@@ -45,6 +46,8 @@ public Provide toModel() {
4546
.providedId(providedId)
4647
.email(email)
4748
.memberId(memberId)
49+
.createdAt(getCreatedAt())
50+
.updatedAt(getUpdatedAt())
4851
.build();
4952
}
5053

@@ -55,6 +58,7 @@ public static ProvideEntity from(Provide provide) {
5558
.providedId(provide.getProvidedId())
5659
.email(provide.getEmail())
5760
.memberId(provide.getMemberId())
61+
.createdAt(provide.getCreatedAt())
5862
.build();
5963
}
6064
}

src/main/java/org/fontory/fontorybe/provide/service/ProvideServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class ProvideServiceImpl implements ProvideService {
1313
private final ProvideRepository provideRepository;
1414

1515
@Override
16-
public Provide getById(Long id) {
16+
public Provide getOrThrownById(Long id) {
1717
return provideRepository.findById(id)
1818
.orElseThrow(RuntimeException::new);
1919
}

0 commit comments

Comments
 (0)