generated from pricelees/issue-pr-template
47 lines
1.6 KiB
Kotlin
47 lines
1.6 KiB
Kotlin
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<CommonApiResponse<LoginSuccessResponse>> {
|
|
val response = authService.login(request = loginRequest, context = servletRequest.toLoginContext())
|
|
|
|
return ResponseEntity.ok(CommonApiResponse(response))
|
|
}
|
|
|
|
@GetMapping("/login/check")
|
|
override fun checkLogin(
|
|
@CurrentUser user: CurrentUserContext,
|
|
): ResponseEntity<CommonApiResponse<CurrentUserContext>> {
|
|
return ResponseEntity.ok(CommonApiResponse(user))
|
|
}
|
|
|
|
@PostMapping("/logout")
|
|
override fun logout(
|
|
@CurrentUser user: CurrentUserContext,
|
|
servletResponse: HttpServletResponse
|
|
): ResponseEntity<CommonApiResponse<Unit>> {
|
|
return ResponseEntity.ok().build()
|
|
}
|
|
}
|