Skip to content

Commit

Permalink
refactor: 세션 시간 반환 API 패키지 변경 및 메소드 명 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
gikhoon committed Aug 20, 2024
1 parent 5d18d01 commit e678b10
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,11 @@
import org.cotato.csquiz.api.attendance.dto.OfflineAttendanceRequest;
import org.cotato.csquiz.api.attendance.dto.OnlineAttendanceRequest;
import org.cotato.csquiz.api.attendance.dto.UpdateAttendanceRequest;
import org.cotato.csquiz.api.attendance.dto.AttendanceTimeResponse;
import org.cotato.csquiz.domain.attendance.service.AttendanceAdminService;
import org.cotato.csquiz.domain.attendance.service.AttendanceRecordService;
import org.cotato.csquiz.domain.attendance.service.AttendanceService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.validation.annotation.Validated;
Expand Down Expand Up @@ -50,6 +52,12 @@ public ResponseEntity<Void> updateAttendance(@RequestBody @Valid UpdateAttendanc
return ResponseEntity.noContent().build();
}

@Operation(summary = "세션 시간 반환 API")
@GetMapping("/info")
public ResponseEntity<AttendanceTimeResponse> findAttendanceTimeInfo(@RequestParam("sessionId") Long sessionId) {
return ResponseEntity.status(HttpStatus.OK).body(attendanceService.findAttendanceTimeInfo(sessionId));
}

@Operation(summary = "회원 출결사항 기간 단위 조회 API")
@GetMapping("/records")
public ResponseEntity<List<AttendanceRecordResponse>> findAttendanceRecords(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package org.cotato.csquiz.api.session.dto;
package org.cotato.csquiz.api.attendance.dto;

import java.time.LocalDateTime;
import java.time.LocalTime;

public record SessionDetailInfoResponse(
public record AttendanceTimeResponse(
Long sessionId,
LocalTime attendanceDeadLine,
LocalTime lateDeadLine
) {
public static SessionDetailInfoResponse of(Long sessionId, LocalDateTime attendanceDeadLine, LocalDateTime lateDeadLine) {
return new SessionDetailInfoResponse(
public static AttendanceTimeResponse of(Long sessionId, LocalDateTime attendanceDeadLine, LocalDateTime lateDeadLine) {
return new AttendanceTimeResponse(
sessionId,
attendanceDeadLine.toLocalTime(),
lateDeadLine.toLocalTime()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import org.cotato.csquiz.api.session.dto.AddSessionResponse;
import org.cotato.csquiz.api.session.dto.CsEducationOnSessionNumberResponse;
import org.cotato.csquiz.api.session.dto.DeleteSessionImageRequest;
import org.cotato.csquiz.api.session.dto.SessionDetailInfoResponse;
import org.cotato.csquiz.api.session.dto.SessionListResponse;
import org.cotato.csquiz.api.session.dto.UpdateSessionNumberRequest;
import org.cotato.csquiz.api.session.dto.UpdateSessionImageOrderRequest;
Expand All @@ -26,7 +25,6 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
Expand All @@ -49,12 +47,6 @@ public ResponseEntity<List<SessionListResponse>> findSessionsByGenerationId(@Req
return ResponseEntity.status(HttpStatus.OK).body(sessionService.findSessionsByGenerationId(generationId));
}

@Operation(summary = "세션 시간 반환 API")
@GetMapping("/{sessionId}/info")
public ResponseEntity<SessionDetailInfoResponse> findSessionDetailInfo(@PathVariable("sessionId") Long sessionId) {
return ResponseEntity.status(HttpStatus.OK).body(sessionService.findSessionDetailInfo(sessionId));
}

@Operation(summary = "CS ON인 세션 목록 반환 API")
@GetMapping("/cs-on")
public ResponseEntity<List<CsEducationOnSessionNumberResponse>> findAllCsOnSessionsByGenerationId(
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import lombok.RequiredArgsConstructor;
import org.cotato.csquiz.api.attendance.dto.AttendanceResponse;
import org.cotato.csquiz.api.attendance.dto.AttendancesResponse;
import org.cotato.csquiz.api.attendance.dto.AttendanceTimeResponse;
import org.cotato.csquiz.domain.attendance.entity.Attendance;
import org.cotato.csquiz.domain.attendance.repository.AttendanceRepository;
import org.cotato.csquiz.domain.attendance.util.AttendanceUtil;
import org.cotato.csquiz.domain.generation.entity.Generation;
Expand Down Expand Up @@ -58,4 +60,14 @@ public AttendancesResponse findAttendancesByGenerationId(final Long generationId
.attendances(attendances)
.build();
}

@Transactional(readOnly = true)
public AttendanceTimeResponse findAttendanceTimeInfo(Long sessionId) {
Attendance findAttendance = attendanceRepository.findBySessionId(sessionId)
.orElseThrow(() -> new EntityNotFoundException("해당 출석을 찾을 수 없습니다"));

return AttendanceTimeResponse.of(sessionId,
findAttendance.getAttendanceDeadLine(),
findAttendance.getLateDeadLine());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import org.cotato.csquiz.api.session.dto.AddSessionRequest;
import org.cotato.csquiz.api.session.dto.AddSessionResponse;
import org.cotato.csquiz.api.session.dto.CsEducationOnSessionNumberResponse;
import org.cotato.csquiz.api.session.dto.SessionDetailInfoResponse;
import org.cotato.csquiz.api.session.dto.SessionListResponse;
import org.cotato.csquiz.api.session.dto.UpdateSessionNumberRequest;
import org.cotato.csquiz.api.session.dto.UpdateSessionRequest;
Expand Down Expand Up @@ -162,15 +161,6 @@ public List<SessionListResponse> findSessionsByGenerationId(Long generationId) {
.toList();
}

public SessionDetailInfoResponse findSessionDetailInfo(Long sessionId) {
Attendance findAttendance = attendanceRepository.findBySessionId(sessionId)
.orElseThrow(() -> new EntityNotFoundException("해당 출석을 찾을 수 없습니다"));

return SessionDetailInfoResponse.of(sessionId,
findAttendance.getAttendanceDeadLine(),
findAttendance.getLateDeadLine());
}

public Session findSessionById(Long sessionId) {
return sessionRepository.findById(sessionId)
.orElseThrow(() -> new EntityNotFoundException("해당 세션을 찾을 수 없습니다."));
Expand Down

0 comments on commit e678b10

Please sign in to comment.