Skip to content

Commit b7d957c

Browse files
committed
refactor: 피드백 수정 API 파라미터 수정
1 parent cc1799c commit b7d957c

2 files changed

Lines changed: 18 additions & 12 deletions

File tree

src/main/java/com/neeis/neeis/domain/attendance/controller/AttendanceController.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public ResponseEntity<CommonResponse<StudentAttendanceResDto>> getOneAttendance(
7676

7777
@GetMapping("/summary")
7878
@Operation(summary = "[교사 및 학생 전용] 담임 학생 출결 통계 조회", description = "로그인한 교사의 학급 학생의 출결을 통계냅니다. <br>" +
79-
"조회하려는 학급과 학생의 년도, 학년, 반, 출석번호이 필수로 입력해야합니다. <br>" +
79+
"조회하려는 학급과 학생의 년도, 학년, 반, 출석번호가 필수로 입력해야합니다. <br>" +
8080
"추가로 출석 통계는 '학기당 수업 일수'로 계산되므로, 반드시 '학기'를 입력해야 합니다.")
8181
public ResponseEntity<CommonResponse<StudentAttendanceSummaryDto>> getStudentAttendanceSummary( @AuthenticationPrincipal UserDetails userDetails,
8282
@RequestParam("year") @Parameter(description = "연도") int year,
@@ -101,15 +101,18 @@ public ResponseEntity<CommonResponse<AttendanceFeedbackResDto>> saveFeedback(@Au
101101
return ResponseEntity.ok(CommonResponse.from(SUCCESS_POST_FEEDBACK.getMessage(), dto));
102102
}
103103

104-
@PutMapping("/feedback/{feedbackId}")
104+
@PutMapping("/feedback")
105105
@Operation(summary = "[교사 전용] 담임 학생 출결 피드백 수정", description = "로그인한 교사가 작성한 학생 출결 피드백을 수정합니다. <br>" +
106-
"피드백 ID를 경로로 입력하고, 수정할 피드백 내용을 요청 본문에 작성합니다. <br>" +
106+
"수정하려는 학생의 년도, 학년, 반, 출석번호가 필수로 입력해야합니다. <br>" +
107107
"본인이 작성한 피드백만 수정할 수 있습니다.")
108108
public ResponseEntity<CommonResponse<AttendanceFeedbackResDto>> updateFeedback(@AuthenticationPrincipal UserDetails userdetails,
109-
@PathVariable("feedbackId") Long feedbackId,
109+
@RequestParam("year") @Parameter(description = "연도") int year,
110+
@RequestParam("grade") @Parameter(description = "학년") int grade,
111+
@RequestParam("classNum") @Parameter(description = "반") int classNum,
112+
@RequestParam("number") @Parameter(description = "번호") int number,
110113
@Valid @RequestBody AttendanceFeedbackReqDto attendanceFeedbackDto) {
111114

112-
return ResponseEntity.ok(CommonResponse.from(SUCCESS_POST_FEEDBACK.getMessage(),attendanceService.updateFeedback(userdetails.getUsername(), feedbackId, attendanceFeedbackDto)));
115+
return ResponseEntity.ok(CommonResponse.from(SUCCESS_POST_FEEDBACK.getMessage(),attendanceService.updateFeedback(userdetails.getUsername(),year, grade, classNum, number, attendanceFeedbackDto)));
113116
}
114117

115118
@GetMapping("/feedback")

src/main/java/com/neeis/neeis/domain/attendance/service/AttendanceService.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public void saveOrUpdateAttendance(String username, AttendanceBulkRequestDto req
6262
Teacher teacher = teacherService.authenticate(username);
6363
Classroom classroom = classroomService.findClassroom(requestDto.getYear(), requestDto.getGrade(), requestDto.getClassNumber(), teacher.getId());
6464

65-
if(classroom.getTeacher() != teacher) {
65+
if (classroom.getTeacher() != teacher) {
6666
throw new CustomException(HANDLE_ACCESS_DENIED);
6767
}
6868

@@ -146,7 +146,7 @@ public List<StudentAttendanceResDto> getAttendances(String username, int year, i
146146
.build())
147147
.toList();
148148

149-
return StudentAttendanceResDto.toDto( cs,
149+
return StudentAttendanceResDto.toDto(cs,
150150
attendances.isEmpty() ? Attendance.builder().student(student).build() : attendances.getFirst(),
151151
dailyAttendanceDtos
152152
);
@@ -248,14 +248,17 @@ public AttendanceFeedbackResDto saveFeedback(String username, int year, int grad
248248

249249
// [교사] 출결 피드백 수정
250250
@Transactional
251-
public AttendanceFeedbackResDto updateFeedback(String username, Long feedBackId, AttendanceFeedbackReqDto requestDto) {
251+
public AttendanceFeedbackResDto updateFeedback(String username, int year, int grade, int classNum, int number, AttendanceFeedbackReqDto requestDto) {
252252

253253
Teacher teacher = teacherService.authenticate(username);
254254

255-
AttendanceFeedback feedback = feedbackRepository.findById(feedBackId)
256-
.orElseThrow(() -> new CustomException(ErrorCode.DATA_NOT_FOUND));
255+
ClassroomStudent classroomStudent = checkValidate(username, year, grade, classNum, number);
256+
257+
AttendanceFeedback feedback = feedbackRepository.findByClassroomStudent(classroomStudent).orElseThrow(
258+
() -> new CustomException(ErrorCode.DATA_NOT_FOUND)
259+
);
257260

258-
if(feedback.getClassroomStudent().getClassroom().getTeacher() != teacher){
261+
if (feedback.getClassroomStudent().getClassroom().getTeacher() != teacher) {
259262
throw new CustomException(HANDLE_ACCESS_DENIED);
260263
}
261264
feedback.updateContent(requestDto.getFeedback());
@@ -319,7 +322,7 @@ private ClassroomStudent checkValidate(String username, int year, int grade, int
319322
.orElseThrow(() -> new CustomException(CLASSROOM_NOT_FOUND));
320323

321324
// 자녀가 아니면 접근 불가함.
322-
if(!student.getId().equals(classroomStudent.getStudent().getId())){
325+
if (!student.getId().equals(classroomStudent.getStudent().getId())) {
323326
throw new CustomException(HANDLE_ACCESS_DENIED);
324327
}
325328

0 commit comments

Comments
 (0)