File tree Expand file tree Collapse file tree 3 files changed +24
-5
lines changed
src/main/java/nambang_swag/bada_on Expand file tree Collapse file tree 3 files changed +24
-5
lines changed Original file line number Diff line number Diff line change 1010
1111import io .swagger .v3 .oas .annotations .Operation ;
1212import io .swagger .v3 .oas .annotations .tags .Tag ;
13+ import jakarta .validation .Valid ;
1314import lombok .RequiredArgsConstructor ;
15+ import nambang_swag .bada_on .request .AvailableTimeRequest ;
1416import nambang_swag .bada_on .response .AvailableTime ;
1517import nambang_swag .bada_on .response .WeatherDetail ;
1618import nambang_swag .bada_on .response .WeatherSummary ;
@@ -47,9 +49,8 @@ public ResponseEntity<WeatherDetail> getWeatherDetails(
4749 @ Operation (summary = "조회 가능한 시간 조회" , description = "날씨 조회가 가능한 시간 조회" )
4850 @ GetMapping ("/available" )
4951 public ResponseEntity <List <AvailableTime >> getAvailableTime (
50- @ RequestParam ("date" ) Integer date ,
51- @ RequestParam ("hour" ) Integer hour
52+ @ Valid AvailableTimeRequest request
5253 ) {
53- return ResponseEntity .ok (weatherService .getAvailableTime (date , hour ));
54+ return ResponseEntity .ok (weatherService .getAvailableTime (Integer . valueOf ( request . date ()) ));
5455 }
5556}
Original file line number Diff line number Diff line change 1+ package nambang_swag .bada_on .request ;
2+
3+ import jakarta .validation .constraints .NotBlank ;
4+ import jakarta .validation .constraints .Pattern ;
5+
6+ public record AvailableTimeRequest (
7+ @ NotBlank
8+ @ Pattern (
9+ regexp = "^\\ d{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$" ,
10+ message = "yyyyMMdd 형태로 요청해주세요."
11+ )
12+ String date
13+ ) {
14+ }
Original file line number Diff line number Diff line change @@ -581,8 +581,12 @@ private int calculateTidePercentage(List<TideRecord> tideRecords) {
581581 return 0 ; // 범위 밖의 시간인 경우
582582 }
583583
584- public List <AvailableTime > getAvailableTime (Integer date , Integer hour ) {
585- return weatherRepository .getWeatherIsUpdated (date , hour * 100 ).stream ()
584+ public List <AvailableTime > getAvailableTime (Integer date ) {
585+ DateTimeFormatter formatter = DateTimeFormatter .ofPattern ("yyyyMMdd" );
586+ LocalDateTime requestTime = toLocalDateTime (date , 0 );
587+ int requestDate = Integer .parseInt (requestTime .minusDays (1 ).format (formatter ));
588+
589+ return weatherRepository .getWeatherIsUpdated (requestDate , 0 ).stream ()
586590 .collect (Collectors .groupingBy (
587591 Weather ::getDate ,
588592 Collectors .mapping (weather -> weather .getTime () / 100 , Collectors .toSet ()) // Remove duplicates
You can’t perform that action at this time.
0 commit comments