Skip to content

Commit 1ae78de

Browse files
committed
[feat/#94] 새끼문항 제출 틀림 업데이트 api 구현
1 parent 2479aa5 commit 1ae78de

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-0
lines changed

src/main/java/com/moplus/moplus_server/client/submit/controller/ClientSubmitController.java

+10
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.moplus.moplus_server.client.submit.domain.ChildProblemSubmitStatus;
44
import com.moplus.moplus_server.client.submit.domain.ProblemSubmitStatus;
55
import com.moplus.moplus_server.client.submit.dto.request.ChildProblemSubmitCreateRequest;
6+
import com.moplus.moplus_server.client.submit.dto.request.ChildProblemSubmitUpdateIncorrectRequest;
67
import com.moplus.moplus_server.client.submit.dto.request.ChildProblemSubmitUpdateRequest;
78
import com.moplus.moplus_server.client.submit.dto.request.ProblemSubmitCreateRequest;
89
import com.moplus.moplus_server.client.submit.dto.request.ProblemSubmitUpdateRequest;
@@ -58,4 +59,13 @@ public ResponseEntity<ChildProblemSubmitStatus> updateChildProblemSubmit(
5859
) {
5960
return ResponseEntity.ok(clientSubmitService.updateChildProblemSubmit(request));
6061
}
62+
63+
@PutMapping("childProblemSubmit/incorrect")
64+
@Operation(summary = "새끼문항 제출 틀림 업데이트", description = "새끼문항 제출의 상태를 틀림으로 업데이트합니다.")
65+
public ResponseEntity<Void> updateChildProblemSubmitIncorrect(
66+
@RequestBody ChildProblemSubmitUpdateIncorrectRequest request
67+
) {
68+
clientSubmitService.updateChildProblemSubmitIncorrect(request);
69+
return ResponseEntity.ok(null);
70+
}
6171
}

src/main/java/com/moplus/moplus_server/client/submit/domain/ChildProblemSubmit.java

+5
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,9 @@ public ChildProblemSubmit(Long memberId, Long publishId, Long childProblemId, Ch
4141
public void updateStatus(ChildProblemSubmitStatus status) {
4242
this.status = status;
4343
}
44+
45+
public void updateStatusIncorrect() {
46+
this.status = ChildProblemSubmitStatus.INCORRECT;
47+
48+
}
4449
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.moplus.moplus_server.client.submit.dto.request;
2+
3+
import jakarta.validation.constraints.NotNull;
4+
5+
public record ChildProblemSubmitUpdateIncorrectRequest(
6+
@NotNull(message = "발행 ID는 필수입니다.")
7+
Long publishId,
8+
@NotNull(message = "새끼문항 ID는 필수입니다.")
9+
Long childProblemId
10+
) {
11+
}

src/main/java/com/moplus/moplus_server/client/submit/service/ClientSubmitService.java

+17
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.moplus.moplus_server.client.submit.domain.ProblemSubmit;
77
import com.moplus.moplus_server.client.submit.domain.ProblemSubmitStatus;
88
import com.moplus.moplus_server.client.submit.dto.request.ChildProblemSubmitCreateRequest;
9+
import com.moplus.moplus_server.client.submit.dto.request.ChildProblemSubmitUpdateIncorrectRequest;
910
import com.moplus.moplus_server.client.submit.dto.request.ChildProblemSubmitUpdateRequest;
1011
import com.moplus.moplus_server.client.submit.dto.request.ProblemSubmitCreateRequest;
1112
import com.moplus.moplus_server.client.submit.dto.request.ProblemSubmitUpdateRequest;
@@ -134,4 +135,20 @@ public ChildProblemSubmitStatus updateChildProblemSubmit(ChildProblemSubmitUpdat
134135
return status;
135136
}
136137

138+
@Transactional
139+
public void updateChildProblemSubmitIncorrect(ChildProblemSubmitUpdateIncorrectRequest request) {
140+
Long memberId = 1L;
141+
142+
// 존재하는 발행인지 검증
143+
publishRepository.existsByIdElseThrow(request.publishId());
144+
145+
// 새끼문항 조회
146+
ChildProblem childProblem = childProblemRepository.findByIdElseThrow(request.childProblemId());
147+
148+
//새끼문항 제출 데이터 조회
149+
ChildProblemSubmit childProblemSubmit = childProblemSubmitRepository.findByMemberIdAndPublishIdAndChildProblemIdElseThrow(memberId,
150+
request.publishId(), request.childProblemId());
151+
// 틀림 처리
152+
childProblemSubmit.updateStatusIncorrect();
153+
}
137154
}

0 commit comments

Comments
 (0)