Skip to content

Commit 084bb07

Browse files
authored
Merge pull request #274 from Modagbul/MNG-21
MNG-21 : 미션 인증 시 문구 추가
2 parents f707f7e + e9380df commit 084bb07

File tree

6 files changed

+39
-11
lines changed

6 files changed

+39
-11
lines changed

src/main/java/com/moing/backend/domain/missionArchive/application/dto/req/MissionArchiveReq.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import lombok.*;
44

5+
import javax.annotation.Nullable;
56
import javax.validation.constraints.Size;
67

78
@Builder
@@ -10,12 +11,16 @@
1011
public class MissionArchiveReq {
1112

1213
private String status;
14+
1315
@Size(min = 1, max = 1000)
1416
private String archive; //사진일 경우 파일명, 이외에는 text,link
1517

18+
private String contents;
19+
1620
@Builder
17-
public MissionArchiveReq(String status, String archive) {
21+
public MissionArchiveReq(String status, String archive, String contents) {
1822
this.status = status;
1923
this.archive = archive;
24+
this.contents = contents;
2025
}
2126
}

src/main/java/com/moing/backend/domain/missionArchive/application/dto/res/MissionArchiveRes.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class MissionArchiveRes {
1818
private Long count;
1919
private String heartStatus;
2020
private Long hearts;
21+
private String contents;
2122

2223
public void updateCount(Long count) {
2324
this.count = count;

src/main/java/com/moing/backend/domain/missionArchive/application/dto/res/PersonalArchiveRes.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import lombok.*;
44

5+
import javax.annotation.Nullable;
6+
57
@AllArgsConstructor
68
@Builder
79
@NoArgsConstructor
@@ -24,5 +26,8 @@ public class PersonalArchiveRes {
2426

2527
private Long makerId;
2628

29+
@Nullable
30+
private String contents;
31+
2732

2833
}

src/main/java/com/moing/backend/domain/missionArchive/application/mapper/MissionArchiveMapper.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.moing.backend.domain.member.domain.entity.Member;
44
import com.moing.backend.domain.mission.application.dto.res.FinishMissionBoardRes;
5-
import com.moing.backend.domain.mission.application.dto.res.RepeatMissionBoardRes;
65
import com.moing.backend.domain.mission.application.dto.res.SingleMissionBoardRes;
76
import com.moing.backend.domain.mission.domain.entity.Mission;
87
import com.moing.backend.domain.missionArchive.application.dto.req.MissionArchiveReq;
@@ -29,6 +28,7 @@ public static MissionArchive mapToMissionArchive(MissionArchiveReq missionArchiv
2928
.member(member)
3029
.mission(mission)
3130
.heartList(new ArrayList<>())
31+
.contents(missionArchiveReq.getContents())
3232
.build();
3333
}
3434

@@ -50,6 +50,7 @@ public static MissionArchiveRes mapToMissionArchiveRes(MissionArchive missionArc
5050
.filter(heart -> heart.getHeartStatus() == ( MissionHeartStatus.True))
5151
.filter(heart -> heart.getMissionArchive().equals( missionArchive))// heartStatus가 true인 요소만 필터링
5252
.count())
53+
.contents(missionArchive.getContents())
5354
.build();
5455
}
5556

@@ -84,6 +85,7 @@ public static PersonalArchiveRes mapToPersonalArchive(MissionArchive missionArch
8485
.filter(heart -> heart.getMissionArchive().equals( missionArchive))// heartStatus가 true인 요소만 필터링
8586
.count())
8687
.makerId(missionArchive.getMember().getMemberId())
88+
.contents(missionArchive.getContents())
8789
.build();
8890
}
8991

src/main/java/com/moing/backend/domain/missionArchive/domain/entity/MissionArchive.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,14 @@ public class MissionArchive extends BaseTimeEntity { // 1회 미션을 저장
3939
@Enumerated(value = EnumType.STRING)
4040
private MissionArchiveStatus status;
4141

42-
4342
@Column(nullable = false, columnDefinition="TEXT", length = 4000)
4443
private String archive; //링크, 글, 사진 뭐든 가능
4544

4645
private Long count; // 횟수
4746

47+
@Column(nullable = true, columnDefinition="TEXT", length = 1000)
48+
private String contents;
49+
4850
@OneToMany(mappedBy = "missionArchive", cascade = CascadeType.REMOVE)
4951
private List<MissionHeart> heartList = new ArrayList<>();
5052

src/test/java/com/moing/backend/domain/missionArchive/representation/MissionArchiveControllerTest.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.moing.backend.domain.missionArchive.representation;
22

33
import com.moing.backend.config.CommonControllerTest;
4-
import com.moing.backend.domain.missionArchive.application.dto.req.MissionArchiveHeartReq;
54
import com.moing.backend.domain.missionArchive.application.dto.req.MissionArchiveReq;
65
import com.moing.backend.domain.missionArchive.application.dto.res.*;
76
import com.moing.backend.domain.missionArchive.application.service.*;
@@ -65,6 +64,7 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
6564
.count(1L)
6665
.heartStatus("[True/False]")
6766
.hearts(1L)
67+
.contents("contents")
6868
.build();
6969

7070
given(missionArchiveCreateUseCase.createArchive(any(),any(),any())).willReturn(output);
@@ -93,7 +93,10 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
9393
),
9494
requestFields(
9595
fieldWithPath("status").description("미션 인증 상태 [COMPLETE/SKIP]"),
96-
fieldWithPath("archive").description("미션 인증물 [s3URL/text/링크] ")
96+
fieldWithPath("archive").description("미션 인증물 [s3URL/text/링크] "),
97+
fieldWithPath("contents").description("미션 인증 문구 [null 허용] ")
98+
99+
97100
),
98101
responseFields(
99102
fieldWithPath("isSuccess").description("true"),
@@ -105,7 +108,8 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
105108
fieldWithPath("data.status").description("미션 인증 상태"),
106109
fieldWithPath("data.count").description("미션 인증 횟수"),
107110
fieldWithPath("data.hearts").description("미션 인증 좋아요 수"),
108-
fieldWithPath("data.heartStatus").description("미션 인증 좋아요 상태")
111+
fieldWithPath("data.heartStatus").description("미션 인증 좋아요 상태"),
112+
fieldWithPath("data.contents").description("미션 인증 문구")
109113
)
110114
)
111115
)
@@ -132,6 +136,7 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
132136
.count(1L)
133137
.heartStatus("[True/False]")
134138
.hearts(1L)
139+
.contents("contents")
135140
.build();
136141

137142
given(missionArchiveUpdateUseCase.updateArchive(any(),any(),any())).willReturn(output);
@@ -160,7 +165,9 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
160165
),
161166
requestFields(
162167
fieldWithPath("status").description("미션 인증 상태 [COMPLETE/SKIP]"),
163-
fieldWithPath("archive").description("미션 인증물 [s3URL/text/링크] ")
168+
fieldWithPath("archive").description("미션 인증물 [s3URL/text/링크] "),
169+
fieldWithPath("contents").description("미션 인증 문구 [null 허용] ")
170+
164171
),
165172
responseFields(
166173
fieldWithPath("isSuccess").description("true"),
@@ -173,7 +180,9 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
173180
fieldWithPath("data.status").description("미션 인증 상태"),
174181
fieldWithPath("data.count").description("미션 인증 횟수"),
175182
fieldWithPath("data.heartStatus").description("미션 인증 좋아요 상태"),
176-
fieldWithPath("data.hearts").description("미션 인증 좋아요 수")
183+
fieldWithPath("data.hearts").description("미션 인증 좋아요 수"),
184+
fieldWithPath("data.contents").description("미션 인증 문구")
185+
177186
)
178187
)
179188
)
@@ -236,6 +245,7 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
236245
.count(1L)
237246
.heartStatus("[True/False]")
238247
.hearts(1L)
248+
.contents("contents")
239249
.build());
240250

241251
MyMissionArchiveRes output = MyMissionArchiveRes.builder()
@@ -278,7 +288,8 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
278288
fieldWithPath("data.archives[].status").description("미션 인증 상태"),
279289
fieldWithPath("data.archives[].count").description("미션 인증 횟수"),
280290
fieldWithPath("data.archives[].heartStatus").description("미션 인증 좋아요 상태"),
281-
fieldWithPath("data.archives[].hearts").description("미션 인증 좋아요 수")
291+
fieldWithPath("data.archives[].hearts").description("미션 인증 좋아요 수"),
292+
fieldWithPath("data.archives[].contents").description("미션 인증 문구")
282293

283294

284295
)
@@ -304,6 +315,7 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
304315
.heartStatus("[True/False]")
305316
.hearts(3)
306317
.makerId(1L)
318+
.contents("contents")
307319
.build());
308320

309321
given(missionArchiveReadUseCase.getPersonalArchive(any(),any())).willReturn(output);
@@ -343,10 +355,11 @@ public class MissionArchiveControllerTest extends CommonControllerTest {
343355
fieldWithPath("data[].count").description("미션 인증 횟수"),
344356
fieldWithPath("data[].heartStatus").description("미션 인증 좋아요 상태 "),
345357
fieldWithPath("data[].hearts").description("미션 인증 좋아요 수 "),
346-
fieldWithPath("data[].makerId").description("미션 인증한 사람 ")
358+
fieldWithPath("data[].makerId").description("미션 인증한 사람 "),
359+
fieldWithPath("data[].contents").description("미션 인증 문구")
347360

348361

349-
)
362+
)
350363
)
351364
)
352365
.andReturn();

0 commit comments

Comments
 (0)