From 797434982a9675693a8d87e35b1c612fb034cea3 Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 00:12:01 +0900 Subject: [PATCH 01/11] =?UTF-8?q?feat:=20User=20=EC=98=A8=EB=B3=B4?= =?UTF-8?q?=EB=94=A9=20=EC=99=84=EB=A3=8C=20=EC=B2=98=EB=A6=AC=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=EC=97=90=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/Timo/Timo/domain/user/entity/User.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/Timo/Timo/domain/user/entity/User.java b/src/main/java/com/Timo/Timo/domain/user/entity/User.java index 3d63452e..1153d940 100644 --- a/src/main/java/com/Timo/Timo/domain/user/entity/User.java +++ b/src/main/java/com/Timo/Timo/domain/user/entity/User.java @@ -76,7 +76,16 @@ public void update(String name, String profileImageUrl) { this.profileImageUrl = profileImageUrl; } - public void completeOnboarding() { + public void completeOnboarding( + Language language, + Long predictionAccuracy, + LocalTime wakeUpTime, + LocalTime bedTime + ) { + this.language = language; + this.predictionAccuracy = predictionAccuracy; + this.wakeUpTime = wakeUpTime; + this.bedTime = bedTime; this.onboardingCompleted = true; } From b3efee34abe21b0a88e8451308b3358342fc10aa Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 00:21:25 +0900 Subject: [PATCH 02/11] =?UTF-8?q?feat:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20API=20Request=20DTO=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/request/OnboardingRequest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/main/java/com/Timo/Timo/domain/onboarding/dto/request/OnboardingRequest.java diff --git a/src/main/java/com/Timo/Timo/domain/onboarding/dto/request/OnboardingRequest.java b/src/main/java/com/Timo/Timo/domain/onboarding/dto/request/OnboardingRequest.java new file mode 100644 index 00000000..c88ff9b0 --- /dev/null +++ b/src/main/java/com/Timo/Timo/domain/onboarding/dto/request/OnboardingRequest.java @@ -0,0 +1,26 @@ +package com.Timo.Timo.domain.onboarding.dto.request; + +import com.Timo.Timo.domain.user.enums.Language; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; + +public record OnboardingRequest( + @NotNull(message = "language는 필수입니다.") + Language language, + + @NotNull(message = "predictionAccuracy는 필수입니다.") + @Min(value = 1, message = "predictionAccuracy는 1~4 사이여야 합니다.") + @Max(value = 4, message = "predictionAccuracy는 1~4 사이여야 합니다.") + Long predictionAccuracy, + + @NotNull(message = "wakeupTime은 필수입니다.") + @Pattern(regexp = "^([01]\\d|2[0-3]):[0-5]\\d$", message = "wakeUpTime 형식은 HH:MM 이어야 합니다.") + String wakeUpTime, + + @NotNull(message = "bedTime은 필수입니다.") + @Pattern(regexp = "^([01]\\d|2[0-3]):[0-5]\\d$", message = "bedTime 형식은 HH:MM 이어야 합니다.") + String bedTime +){ +} From 340a97885230d4039d6de7629e4d50d51f270d9a Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 00:24:19 +0900 Subject: [PATCH 03/11] =?UTF-8?q?feat:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20API=20Response=20DTO=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/dto/response/OnboardingResponse.java | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/main/java/com/Timo/Timo/domain/onboarding/dto/response/OnboardingResponse.java diff --git a/src/main/java/com/Timo/Timo/domain/onboarding/dto/response/OnboardingResponse.java b/src/main/java/com/Timo/Timo/domain/onboarding/dto/response/OnboardingResponse.java new file mode 100644 index 00000000..1c3ccdcd --- /dev/null +++ b/src/main/java/com/Timo/Timo/domain/onboarding/dto/response/OnboardingResponse.java @@ -0,0 +1,10 @@ +package com.Timo.Timo.domain.onboarding.dto.response; + +import lombok.Builder; + +@Builder +public record OnboardingResponse( + boolean onboardingCompleted +) { + +} From 40d2b26770f5e55157ef5586dd2eb677ff0f0445 Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 00:28:15 +0900 Subject: [PATCH 04/11] =?UTF-8?q?chore:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=ED=8C=8C=EC=9D=BC=20=EC=9C=84=EC=B9=98=20?= =?UTF-8?q?User=20=ED=8F=B4=EB=8D=94=20=EB=82=B4=EB=A1=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Timo/domain/user/controller/OnboardingController.java | 5 +++++ .../{onboarding => user}/dto/request/OnboardingRequest.java | 2 +- .../dto/response/OnboardingResponse.java | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java rename src/main/java/com/Timo/Timo/domain/{onboarding => user}/dto/request/OnboardingRequest.java (94%) rename src/main/java/com/Timo/Timo/domain/{onboarding => user}/dto/response/OnboardingResponse.java (66%) diff --git a/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java b/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java new file mode 100644 index 00000000..d465d7d1 --- /dev/null +++ b/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java @@ -0,0 +1,5 @@ +package com.Timo.Timo.domain.user.controller; + +public class OnboardingController { + +} diff --git a/src/main/java/com/Timo/Timo/domain/onboarding/dto/request/OnboardingRequest.java b/src/main/java/com/Timo/Timo/domain/user/dto/request/OnboardingRequest.java similarity index 94% rename from src/main/java/com/Timo/Timo/domain/onboarding/dto/request/OnboardingRequest.java rename to src/main/java/com/Timo/Timo/domain/user/dto/request/OnboardingRequest.java index c88ff9b0..fe2f4d97 100644 --- a/src/main/java/com/Timo/Timo/domain/onboarding/dto/request/OnboardingRequest.java +++ b/src/main/java/com/Timo/Timo/domain/user/dto/request/OnboardingRequest.java @@ -1,4 +1,4 @@ -package com.Timo.Timo.domain.onboarding.dto.request; +package com.Timo.Timo.domain.user.dto.request; import com.Timo.Timo.domain.user.enums.Language; import jakarta.validation.constraints.Max; diff --git a/src/main/java/com/Timo/Timo/domain/onboarding/dto/response/OnboardingResponse.java b/src/main/java/com/Timo/Timo/domain/user/dto/response/OnboardingResponse.java similarity index 66% rename from src/main/java/com/Timo/Timo/domain/onboarding/dto/response/OnboardingResponse.java rename to src/main/java/com/Timo/Timo/domain/user/dto/response/OnboardingResponse.java index 1c3ccdcd..bf119bab 100644 --- a/src/main/java/com/Timo/Timo/domain/onboarding/dto/response/OnboardingResponse.java +++ b/src/main/java/com/Timo/Timo/domain/user/dto/response/OnboardingResponse.java @@ -1,4 +1,4 @@ -package com.Timo.Timo.domain.onboarding.dto.response; +package com.Timo.Timo.domain.user.dto.response; import lombok.Builder; From afed08515c6b6f57f50b84317660e0b43e2e22bc Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 00:36:35 +0900 Subject: [PATCH 05/11] =?UTF-8?q?feat:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=20=EA=B2=80=EC=A6=9D=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/Timo/Timo/domain/user/exception/UserErrorCode.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/Timo/Timo/domain/user/exception/UserErrorCode.java b/src/main/java/com/Timo/Timo/domain/user/exception/UserErrorCode.java index 5ddbf59f..f7e408ad 100644 --- a/src/main/java/com/Timo/Timo/domain/user/exception/UserErrorCode.java +++ b/src/main/java/com/Timo/Timo/domain/user/exception/UserErrorCode.java @@ -9,6 +9,8 @@ @RequiredArgsConstructor public enum UserErrorCode implements BaseErrorCode { + USER_400_INVALID_TIME(HttpStatus.BAD_REQUEST, "USER_400", "취침 시간은 기상 시간보다 이후여야 합니다."), + USER_NOT_FOUND(HttpStatus.NOT_FOUND, "USER_404", "존재하지 않는 사용자입니다."); private final HttpStatus httpStatus; From 1c0728fb4c9767f9460c43ecf3ad791957d4398a Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 00:49:21 +0900 Subject: [PATCH 06/11] =?UTF-8?q?feat:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20=EC=B2=98=EB=A6=AC=20Service=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Timo/domain/user/OnboardingService.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/com/Timo/Timo/domain/user/OnboardingService.java diff --git a/src/main/java/com/Timo/Timo/domain/user/OnboardingService.java b/src/main/java/com/Timo/Timo/domain/user/OnboardingService.java new file mode 100644 index 00000000..1b57b3e4 --- /dev/null +++ b/src/main/java/com/Timo/Timo/domain/user/OnboardingService.java @@ -0,0 +1,44 @@ +package com.Timo.Timo.domain.user; + +import com.Timo.Timo.domain.user.dto.request.OnboardingRequest; +import com.Timo.Timo.domain.user.dto.response.OnboardingResponse; +import com.Timo.Timo.domain.user.entity.User; +import com.Timo.Timo.domain.user.exception.UserErrorCode; +import com.Timo.Timo.domain.user.repository.UserRepository; +import com.Timo.Timo.global.exception.CustomException; +import java.time.LocalTime; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +public class OnboardingService { + + private final UserRepository userRepository; + + @Transactional + public OnboardingResponse completeOnboarding(Long userId, OnboardingRequest request){ + + User user = userRepository.findById(userId) + .orElseThrow(() -> new CustomException(UserErrorCode.USER_NOT_FOUND)); + + LocalTime wakeUpTime = LocalTime.parse(request.wakeUpTime()); + LocalTime bedTime = LocalTime.parse(request.bedTime()); + + if (!bedTime.isAfter(wakeUpTime)) { + throw new CustomException(UserErrorCode.USER_400_INVALID_TIME); + } + + user.completeOnboarding( + request.language(), + request.predictionAccuracy(), + wakeUpTime, + bedTime + ); + + return OnboardingResponse.builder() + .onboardingCompleted(true) + .build(); + } +} From 25f9a276f25c8cb9cc2c3e01c7ac5404bdaac049 Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 00:59:09 +0900 Subject: [PATCH 07/11] =?UTF-8?q?feat:=20UserSuccessCode=EC=97=90=20?= =?UTF-8?q?=EC=98=A8=EB=B3=B4=EB=94=A9=20=EC=99=84=EB=A3=8C=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/Timo/Timo/domain/user/exception/UserSuccessCode.java | 3 ++- .../Timo/Timo/domain/user/{ => service}/OnboardingService.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) rename src/main/java/com/Timo/Timo/domain/user/{ => service}/OnboardingService.java (96%) diff --git a/src/main/java/com/Timo/Timo/domain/user/exception/UserSuccessCode.java b/src/main/java/com/Timo/Timo/domain/user/exception/UserSuccessCode.java index 2f38574d..13d58e34 100644 --- a/src/main/java/com/Timo/Timo/domain/user/exception/UserSuccessCode.java +++ b/src/main/java/com/Timo/Timo/domain/user/exception/UserSuccessCode.java @@ -11,7 +11,8 @@ @RequiredArgsConstructor public enum UserSuccessCode implements BaseSuccessCode { - PROFILE_RETRIEVED(HttpStatus.OK, "프로필을 조회했습니다."); + PROFILE_RETRIEVED(HttpStatus.OK, "프로필을 조회했습니다."), + ONBOARDING_COMPLETED(HttpStatus.OK, "온보딩이 완료되었습니다."); private final HttpStatus httpStatus; private final String message; diff --git a/src/main/java/com/Timo/Timo/domain/user/OnboardingService.java b/src/main/java/com/Timo/Timo/domain/user/service/OnboardingService.java similarity index 96% rename from src/main/java/com/Timo/Timo/domain/user/OnboardingService.java rename to src/main/java/com/Timo/Timo/domain/user/service/OnboardingService.java index 1b57b3e4..2ed7f29a 100644 --- a/src/main/java/com/Timo/Timo/domain/user/OnboardingService.java +++ b/src/main/java/com/Timo/Timo/domain/user/service/OnboardingService.java @@ -1,4 +1,4 @@ -package com.Timo.Timo.domain.user; +package com.Timo.Timo.domain.user.service; import com.Timo.Timo.domain.user.dto.request.OnboardingRequest; import com.Timo.Timo.domain.user.dto.response.OnboardingResponse; From 128837032f91561a2edea59c03752a90d49f474e Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 01:04:43 +0900 Subject: [PATCH 08/11] =?UTF-8?q?feat:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20API=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/controller/OnboardingController.java | 38 ++++++++++++++++++- .../user/docs/OnboardingControllerDocs.java | 17 +++++++++ .../user/dto/request/OnboardingRequest.java | 1 + 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/Timo/Timo/domain/user/docs/OnboardingControllerDocs.java diff --git a/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java b/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java index d465d7d1..82a59fd6 100644 --- a/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java +++ b/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java @@ -1,5 +1,41 @@ package com.Timo.Timo.domain.user.controller; -public class OnboardingController { +import com.Timo.Timo.domain.user.docs.OnboardingControllerDocs; +import com.Timo.Timo.domain.user.dto.request.OnboardingRequest; +import com.Timo.Timo.domain.user.dto.response.OnboardingResponse; +import com.Timo.Timo.domain.user.exception.UserSuccessCode; +import com.Timo.Timo.domain.user.service.OnboardingService; +import com.Timo.Timo.global.auth.principal.CustomUserDetails; +import com.Timo.Timo.global.response.BaseResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +@RestController +@RequestMapping("/api/v1/users") +@RequiredArgsConstructor +@Tag(name = "Onboarding", description = "온보딩 API") +public class OnboardingController implements OnboardingControllerDocs { + + private final OnboardingService onboardingService; + + @Override + @PostMapping("/onboarding") + public ResponseEntity> completeOnboarding( + @AuthenticationPrincipal CustomUserDetails userDetails, + @Valid @RequestBody OnboardingRequest request + ){ + Long userId = userDetails.getUserId(); + OnboardingResponse response = onboardingService.completeOnboarding(userId, request); + + return ResponseEntity.ok( + BaseResponse.onSuccess(UserSuccessCode.ONBOARDING_COMPLETED, response) + ); + } } diff --git a/src/main/java/com/Timo/Timo/domain/user/docs/OnboardingControllerDocs.java b/src/main/java/com/Timo/Timo/domain/user/docs/OnboardingControllerDocs.java new file mode 100644 index 00000000..5fb72056 --- /dev/null +++ b/src/main/java/com/Timo/Timo/domain/user/docs/OnboardingControllerDocs.java @@ -0,0 +1,17 @@ +package com.Timo.Timo.domain.user.docs; + +import com.Timo.Timo.domain.user.dto.request.OnboardingRequest; +import com.Timo.Timo.domain.user.dto.response.OnboardingResponse; +import com.Timo.Timo.global.auth.principal.CustomUserDetails; +import com.Timo.Timo.global.response.BaseResponse; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.http.ResponseEntity; + +public interface OnboardingControllerDocs { + + @Operation(summary = "온보딩 완료", description = "언어, 예측 정확도, 기상/취침 시간을 저장하고 온보딩을 완료 처리합니다.") + ResponseEntity> completeOnboarding( + CustomUserDetails userDetails, + OnboardingRequest request + ); +} diff --git a/src/main/java/com/Timo/Timo/domain/user/dto/request/OnboardingRequest.java b/src/main/java/com/Timo/Timo/domain/user/dto/request/OnboardingRequest.java index fe2f4d97..7b11a4dc 100644 --- a/src/main/java/com/Timo/Timo/domain/user/dto/request/OnboardingRequest.java +++ b/src/main/java/com/Timo/Timo/domain/user/dto/request/OnboardingRequest.java @@ -7,6 +7,7 @@ import jakarta.validation.constraints.Pattern; public record OnboardingRequest( + @NotNull(message = "language는 필수입니다.") Language language, From 475e62c5d1cf29e89806a6f76b2d46ec327909ae Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 01:14:04 +0900 Subject: [PATCH 09/11] =?UTF-8?q?feat:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20=EC=9D=91=EB=8B=B5=20=EC=A1=B0=EB=A6=BD?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=9C=20OnboardingResponseFactory=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/controller/OnboardingController.java | 5 ++--- .../user/factory/OnboardingResponseFactory.java | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/Timo/Timo/domain/user/factory/OnboardingResponseFactory.java diff --git a/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java b/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java index 82a59fd6..cc9df4e7 100644 --- a/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java +++ b/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java @@ -4,6 +4,7 @@ import com.Timo.Timo.domain.user.dto.request.OnboardingRequest; import com.Timo.Timo.domain.user.dto.response.OnboardingResponse; import com.Timo.Timo.domain.user.exception.UserSuccessCode; +import com.Timo.Timo.domain.user.factory.OnboardingResponseFactory; import com.Timo.Timo.domain.user.service.OnboardingService; import com.Timo.Timo.global.auth.principal.CustomUserDetails; import com.Timo.Timo.global.response.BaseResponse; @@ -34,8 +35,6 @@ public ResponseEntity> completeOnboarding( Long userId = userDetails.getUserId(); OnboardingResponse response = onboardingService.completeOnboarding(userId, request); - return ResponseEntity.ok( - BaseResponse.onSuccess(UserSuccessCode.ONBOARDING_COMPLETED, response) - ); + return OnboardingResponseFactory.completed(response); } } diff --git a/src/main/java/com/Timo/Timo/domain/user/factory/OnboardingResponseFactory.java b/src/main/java/com/Timo/Timo/domain/user/factory/OnboardingResponseFactory.java new file mode 100644 index 00000000..dd0d2cdb --- /dev/null +++ b/src/main/java/com/Timo/Timo/domain/user/factory/OnboardingResponseFactory.java @@ -0,0 +1,17 @@ +package com.Timo.Timo.domain.user.factory; + +import com.Timo.Timo.domain.user.dto.response.OnboardingResponse; +import com.Timo.Timo.domain.user.exception.UserSuccessCode; +import com.Timo.Timo.global.response.BaseResponse; +import org.springframework.http.ResponseEntity; + +public class OnboardingResponseFactory { + + public static ResponseEntity> completed( + OnboardingResponse response + ){ + return ResponseEntity.ok( + BaseResponse.onSuccess(UserSuccessCode.ONBOARDING_COMPLETED, response) + ); + } +} From 3e91ff20991929c17dabf769cd8df06f6883b972 Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 02:54:14 +0900 Subject: [PATCH 10/11] =?UTF-8?q?fix:=20Swagger=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EB=B0=8F=20=ED=86=A0=ED=81=B0=20=EC=9E=AC=EB=B0=9C?= =?UTF-8?q?=EA=B8=89=20API=20=EC=9D=B8=EC=A6=9D=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Timo/global/auth/docs/AuthControllerDocs.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/Timo/Timo/global/auth/docs/AuthControllerDocs.java b/src/main/java/com/Timo/Timo/global/auth/docs/AuthControllerDocs.java index b941270f..dcb4fad6 100644 --- a/src/main/java/com/Timo/Timo/global/auth/docs/AuthControllerDocs.java +++ b/src/main/java/com/Timo/Timo/global/auth/docs/AuthControllerDocs.java @@ -13,9 +13,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; -import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.security.SecurityRequirements; import jakarta.servlet.http.HttpServletRequest; -import java.util.Map; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestBody; @@ -32,7 +31,8 @@ public interface AuthControllerDocs { - RefreshToken과 sessionId는 Set-Cookie 헤더로 전달되며, 응답 바디에는 포함되지 않음 """ ) - @io.swagger.v3.oas.annotations.parameters.RequestBody( + @SecurityRequirements + @io.swagger.v3.oas.annotations.parameters.RequestBody( content = @Content( mediaType = "application/json", schema = @Schema(implementation = AuthTokenRequest.class), @@ -98,6 +98,7 @@ ResponseEntity> token( """ ) + @SecurityRequirements @ApiResponses({ @ApiResponse( responseCode = "200", @@ -139,8 +140,7 @@ ResponseEntity> reissue( description = """ 현재 세션을 로그아웃하고 RefreshToken 및 sessionId 쿠키를 만료시킵니다. Swagger UI 오른쪽 위의 Authorize 버튼을 눌러 유효한 Access Token을 입력해야 합니다. - """, - security = @SecurityRequirement(name = "bearerAuth") + """ ) @ApiResponses({ @ApiResponse( @@ -177,8 +177,7 @@ ResponseEntity> logout( 회원 탈퇴를 진행하며, 사용자와 관련된 모든 데이터를 영구 삭제합니다. Swagger UI 오른쪽 위의 Authorize 버튼을 눌러 유효한 Access Token을 입력해야 합니다. 이 작업은 되돌릴 수 없습니다. - """, - security = @SecurityRequirement(name = "bearerAuth") + """ ) @ApiResponses({ @ApiResponse( From 559fa530924817b5f3454b3958faec6ec31b9b22 Mon Sep 17 00:00:00 2001 From: jy000n Date: Wed, 8 Jul 2026 04:47:13 +0900 Subject: [PATCH 11/11] =?UTF-8?q?chore:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20import,=20=EB=B9=88=EC=B9=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Timo/domain/user/controller/OnboardingController.java | 1 - .../Timo/domain/user/dto/response/OnboardingResponse.java | 4 +--- .../com/Timo/Timo/domain/user/exception/UserErrorCode.java | 1 - .../com/Timo/Timo/global/auth/controller/AuthController.java | 1 - 4 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java b/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java index cc9df4e7..3e182760 100644 --- a/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java +++ b/src/main/java/com/Timo/Timo/domain/user/controller/OnboardingController.java @@ -3,7 +3,6 @@ import com.Timo.Timo.domain.user.docs.OnboardingControllerDocs; import com.Timo.Timo.domain.user.dto.request.OnboardingRequest; import com.Timo.Timo.domain.user.dto.response.OnboardingResponse; -import com.Timo.Timo.domain.user.exception.UserSuccessCode; import com.Timo.Timo.domain.user.factory.OnboardingResponseFactory; import com.Timo.Timo.domain.user.service.OnboardingService; import com.Timo.Timo.global.auth.principal.CustomUserDetails; diff --git a/src/main/java/com/Timo/Timo/domain/user/dto/response/OnboardingResponse.java b/src/main/java/com/Timo/Timo/domain/user/dto/response/OnboardingResponse.java index bf119bab..de52f7e4 100644 --- a/src/main/java/com/Timo/Timo/domain/user/dto/response/OnboardingResponse.java +++ b/src/main/java/com/Timo/Timo/domain/user/dto/response/OnboardingResponse.java @@ -5,6 +5,4 @@ @Builder public record OnboardingResponse( boolean onboardingCompleted -) { - -} +) {} diff --git a/src/main/java/com/Timo/Timo/domain/user/exception/UserErrorCode.java b/src/main/java/com/Timo/Timo/domain/user/exception/UserErrorCode.java index f7e408ad..e1ba79c5 100644 --- a/src/main/java/com/Timo/Timo/domain/user/exception/UserErrorCode.java +++ b/src/main/java/com/Timo/Timo/domain/user/exception/UserErrorCode.java @@ -10,7 +10,6 @@ public enum UserErrorCode implements BaseErrorCode { USER_400_INVALID_TIME(HttpStatus.BAD_REQUEST, "USER_400", "취침 시간은 기상 시간보다 이후여야 합니다."), - USER_NOT_FOUND(HttpStatus.NOT_FOUND, "USER_404", "존재하지 않는 사용자입니다."); private final HttpStatus httpStatus; diff --git a/src/main/java/com/Timo/Timo/global/auth/controller/AuthController.java b/src/main/java/com/Timo/Timo/global/auth/controller/AuthController.java index f1536cab..0fff9596 100644 --- a/src/main/java/com/Timo/Timo/global/auth/controller/AuthController.java +++ b/src/main/java/com/Timo/Timo/global/auth/controller/AuthController.java @@ -18,7 +18,6 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.CookieValue;