Skip to content

Commit

Permalink
Feat: 스웨거 기본값 추가 구현 (안부전화 파트) (#74)
Browse files Browse the repository at this point in the history
* fix: 단순 상태변경 요청 POST -> PUT 으로 변경

* feat: 스웨거 example Value 추가
  • Loading branch information
GitJIHO authored Oct 15, 2024
1 parent 66866c9 commit 492bd53
Show file tree
Hide file tree
Showing 6 changed files with 95 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ public ResponseEntity<StringMessageResponse> createHelloCallReport(@MemberId Lon
}

@Operation(summary = "[보호자용] 완료 대기 상태 안부전화 완료 처리", description = "보호자가 완료 대기 상태인 안부전화의 상태를 완료로 변경합니다.")
@PostMapping("/complete/{callId}")
@PutMapping("/complete/{callId}")
public ResponseEntity<StringMessageResponse> completeHelloCall(@MemberId Long memberId, @PathVariable Long callId) {

helloCallService.makeCompleteHelloCallByGuard(memberId, callId);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,39 @@
package com.example.sinitto.helloCall.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

@Schema(example = """
{
"startDate": "2024-08-05",
"endDate": "2024-10-01",
"timeSlots": [
{
"dayName": "월",
"startTime": "18:00",
"endTime": "20:00"
},
{
"dayName": "수",
"startTime": "16:30",
"endTime": "18:30"
},
{
"dayName": "금",
"startTime": "18:00",
"endTime": "20:00"
}
],
"requirement": "어머님께서 매일 아침 등산을 하시는 걸 좋아하세요. 요즘 날씨가 추워졌는데, 건강하게 등산을 잘 다니시는지 여쭤봐 주세요. 등산 이야기를 하면 기분이 좋아지실 거예요.",
"seniorName": "권지민",
"seniorPhoneNumber": "01013572468",
"price": 13000
}
""")
public record HelloCallDetailResponse(
LocalDate startDate,
LocalDate endDate,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,33 @@
package com.example.sinitto.helloCall.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

@Schema(description = "HelloCall 가격 요청", example = """
{
"startDate": "2024-10-01",
"endDate": "2024-10-08",
"timeSlots": [
{
"dayName": "수",
"startTime": "18:00",
"endTime": "20:00"
},
{
"dayName": "금",
"startTime": "18:00",
"endTime": "20:00"
}
],
"price": 500,
"serviceTime": 10,
"requirement": "어머님께서 매일 아침 등산을 하시는 걸 좋아하세요. 요즘 날씨가 추워졌는데, 건강하게 등산을 잘 다니시는지 여쭤봐 주세요. 등산 이야기를 하면 기분이 좋아지실 거예요."
}
""")
public record HelloCallDetailUpdateRequest(
LocalDate startDate,
LocalDate endDate,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,31 @@
package com.example.sinitto.helloCall.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

@Schema(example = """
{
"startDate": "2024-10-01",
"endDate": "2024-10-08",
"timeSlots": [
{
"dayName": "수",
"startTime": "18:00",
"endTime": "20:00"
},
{
"dayName": "금",
"startTime": "18:00",
"endTime": "20:00"
}
],
"serviceTime": 10
}
""")
public record HelloCallPriceRequest(
LocalDate startDate,
LocalDate endDate,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,34 @@
package com.example.sinitto.helloCall.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

@Schema(example = """
{
"seniorId": 15,
"startDate": "2024-10-01",
"endDate": "2024-10-08",
"timeSlots": [
{
"dayName": "수",
"startTime": "18:00",
"endTime": "20:00"
},
{
"dayName": "금",
"startTime": "18:00",
"endTime": "20:00"
}
],
"price": 500,
"serviceTime": 10,
"requirement": "어머님께서 매일 아침 등산을 하시는 걸 좋아하세요. 요즘 날씨가 추워졌는데, 건강하게 등산을 잘 다니시는지 여쭤봐 주세요. 등산 이야기를 하면 기분이 좋아지실 거예요."
}
""")
public record HelloCallRequest(
Long seniorId,
LocalDate startDate,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public HelloCallService(HelloCallRepository helloCallRepository, TimeSlotReposit
@Transactional
public void createHelloCallByGuard(Long memberId, HelloCallRequest helloCallRequest) {
Senior senior = seniorRepository.findByIdAndMemberId(helloCallRequest.seniorId(), memberId)
.orElseThrow(() -> new SeniorNotFoundException("시니어를 찾을 수 없습니다."));
.orElseThrow(() -> new SeniorNotFoundException("보호자님과 연관된 시니어가 아니거나, 시니어를 찾을 수 없습니다."));

if (helloCallRepository.existsBySeniorAndStatusIn(senior, List.of(HelloCall.Status.WAITING, HelloCall.Status.IN_PROGRESS))) {
throw new HelloCallAlreadyExistsException("이미 해당 시니어에게 할당되어 대기중 또는 진행중인 안부 전화 서비스가 존재합니다.");
Expand Down

0 comments on commit 492bd53

Please sign in to comment.