package roomescape.auth.web import jakarta.servlet.http.HttpServletRequest import jakarta.servlet.http.HttpServletResponse import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController import roomescape.auth.business.AuthService import roomescape.auth.docs.AuthAPI import roomescape.auth.web.support.CurrentUser import roomescape.common.dto.CurrentUserContext import roomescape.common.dto.response.CommonApiResponse @RestController @RequestMapping("/auth") class AuthController( private val authService: AuthService, ) : AuthAPI { @PostMapping("/login") override fun login( loginRequest: LoginRequest, servletRequest: HttpServletRequest ): ResponseEntity> { val response = authService.login(request = loginRequest, context = servletRequest.toLoginContext()) return ResponseEntity.ok(CommonApiResponse(response)) } @GetMapping("/login/check") override fun checkLogin( @CurrentUser user: CurrentUserContext, ): ResponseEntity> { return ResponseEntity.ok(CommonApiResponse(user)) } @PostMapping("/logout") override fun logout( @CurrentUser user: CurrentUserContext, servletResponse: HttpServletResponse ): ResponseEntity> { return ResponseEntity.ok().build() } }