-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: 미션 내역 수정 구현 #123
feat: 미션 내역 수정 구현 #123
Changes from 11 commits
7dc2c79
d2a7f27
efc3f7c
8c69e98
eed631e
4b47449
3d7fab7
f5669f4
b93c3a4
c79f360
6ad1078
42e9038
251dc79
92cb04d
4b4f04b
0dbbfae
8195784
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.depromeet.domain.missionRecord.dto.request; | ||
|
||
import io.swagger.v3.oas.annotations.media.Schema; | ||
import jakarta.validation.constraints.Size; | ||
|
||
public record MissionRecordUpdateRequest( | ||
@Size(min = 0, max = 200, message = "미션 기록 일지는 200자까지") | ||
@Schema(description = "미션 기록 일지", defaultValue = "default missionRecord remark") | ||
String remark) {} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package com.depromeet.domain.missionRecord.dto.response; | ||
|
||
import com.depromeet.domain.missionRecord.domain.MissionRecord; | ||
import io.swagger.v3.oas.annotations.media.Schema; | ||
|
||
public record MissionRecordUpdateResponse( | ||
@Schema(description = "미션 기록 ID", defaultValue = "1") Long recordId, | ||
@Schema(description = "미션 기록 일지", defaultValue = "default missionRecord remark") | ||
String remark) { | ||
public static MissionRecordUpdateResponse from(MissionRecord missionRecord) { | ||
return new MissionRecordUpdateResponse(missionRecord.getId(), missionRecord.getRemark()); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -8,6 +8,7 @@ | |||||||||||||||||||||||||||||||
import com.depromeet.domain.missionRecord.domain.MissionRecord; | ||||||||||||||||||||||||||||||||
import com.depromeet.domain.missionRecord.domain.MissionRecordTTL; | ||||||||||||||||||||||||||||||||
import com.depromeet.domain.missionRecord.dto.request.MissionRecordCreateRequest; | ||||||||||||||||||||||||||||||||
import com.depromeet.domain.missionRecord.dto.request.MissionRecordUpdateRequest; | ||||||||||||||||||||||||||||||||
import com.depromeet.domain.missionRecord.dto.response.MissionRecordFindOneResponse; | ||||||||||||||||||||||||||||||||
import com.depromeet.domain.missionRecord.dto.response.MissionRecordFindResponse; | ||||||||||||||||||||||||||||||||
import com.depromeet.global.common.constants.RedisExpireEventConstants; | ||||||||||||||||||||||||||||||||
|
@@ -82,6 +83,19 @@ public List<MissionRecordFindResponse> findAllMissionRecord( | |||||||||||||||||||||||||||||||
return missionRecords.stream().map(MissionRecordFindResponse::from).toList(); | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
public Long updateMissionRecord(MissionRecordUpdateRequest request, Long recordId) { | ||||||||||||||||||||||||||||||||
MissionRecord missionRecord = | ||||||||||||||||||||||||||||||||
missionRecordRepository | ||||||||||||||||||||||||||||||||
.findById(recordId) | ||||||||||||||||||||||||||||||||
.orElseThrow(() -> new CustomException(ErrorCode.MISSION_RECORD_NOT_FOUND)); | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
validateMissionRecordUserMismatch( | ||||||||||||||||||||||||||||||||
missionRecord.getMission(), memberUtil.getCurrentMember()); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. MemberUtil에 getCurrentMember 메소드가 호출 될때마다 쿼리를 날려서
Suggested change
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
missionRecord.updateMissionRecord(request.remark()); | ||||||||||||||||||||||||||||||||
return missionRecord.getId(); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 여기서 Long 타입 반환하고 있어용, |
||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
private void validateMissionRecordDuration(Duration duration) { | ||||||||||||||||||||||||||||||||
if (duration.getSeconds() > 3600L) { | ||||||||||||||||||||||||||||||||
throw new CustomException(ErrorCode.MISSION_RECORD_DURATION_OVERBALANCE); | ||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수정 후 상세로 다시 이동되나요? 아니면 캘린더 목록으로 이동되나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
상세로 다시 이동되는 걸로 알고 있습니당
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
상세로 이동된다면
1.수정 후 프론트에서 단건 조회 API를 다시 콜하거나
2.updateResponse을 받아 바로 상세 페이지를 구성하는 경우
이렇게 두 가지가 있을 것 같아용
1번의 경우라면 recordId만 넘겨주는게 좋을 것 같아용
2번의 경우라면 해당 response에 ImageUrl도 필요할 것 같아용
이 부분은 프론트 담당자와 의논필요해보입니다!