diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/reserve/ReserveWebAdapter.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/reserve/ReserveWebAdapter.kt new file mode 100644 index 0000000..2ffc6d9 --- /dev/null +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/adapter/in/reserve/ReserveWebAdapter.kt @@ -0,0 +1,28 @@ +package hs.kr.entrydsm.feed.adapter.`in`.reserve + +import hs.kr.entrydsm.feed.application.reserve.port.`in`.GetReserveUseCase +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController + +/** + * 예약 링크 관련 HTTP 요청을 처리하는 웹 어댑터 클래스입니다. + * + * 이 클래스는 예약 링크 조회와 관련된 HTTP 엔드포인트를 제공하며, + * 클라이언트의 요청을 적절한 서비스 메서드로 라우팅합니다. + * + * @property reserveService 예약 링크 비즈니스 로직을 처리하는 서비스 + */ +@RestController +@RequestMapping("/reserve") +class ReserveWebAdapter( + private val getReserveUseCase: GetReserveUseCase, +) { + /** + * 예약 페이지 링크를 조회합니다. + * + * @return 예약 페이지 URL 문자열 + */ + @GetMapping + fun reserveLink(): String = getReserveUseCase.execute() +} diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/port/in/GetReserveUseCase.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/port/in/GetReserveUseCase.kt new file mode 100644 index 0000000..b5a3715 --- /dev/null +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/port/in/GetReserveUseCase.kt @@ -0,0 +1,14 @@ +package hs.kr.entrydsm.feed.application.reserve.port.`in` + +/** + * 예약 관련 비즈니스 로직을 정의한 인터페이스입니다. + * 예약 링크 조회 기능을 제공합니다. + */ +interface GetReserveUseCase { + /** + * 예약 페이지 링크를 조회합니다. + * + * @return 예약 페이지 URL 문자열 + */ + fun execute(): String +} diff --git a/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/service/GetReserveService.kt b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/service/GetReserveService.kt new file mode 100644 index 0000000..7d327b1 --- /dev/null +++ b/casper-feed/src/main/kotlin/hs/kr/entrydsm/feed/application/reserve/service/GetReserveService.kt @@ -0,0 +1,25 @@ +package hs.kr.entrydsm.feed.application.reserve.service + +import hs.kr.entrydsm.feed.application.reserve.port.`in`.GetReserveUseCase +import org.springframework.beans.factory.annotation.Value +import org.springframework.stereotype.Service + +/** + * 예약 링크를 제공하는 서비스 클래스입니다. + * + * 이 클래스는 애플리케이션 설정에서 예약 링크를 가져와 제공하는 역할을 합니다. + * + * @property reserveLink 애플리케이션 설정에서 주입받은 예약 링크 (reserve.link) + */ +@Service +class GetReserveService( + @Value("\${reserve.link}") + private val reserveLink: String, +) : GetReserveUseCase { + /** + * 애플리케이션 설정에 정의된 예약 링크를 반환합니다. + * + * @return 예약 페이지 URL 문자열 + */ + override fun execute() = reserveLink +}