use axum::extract::State; use crate::error::AuthError; use crate::features::AuthService; use export::auth::refresh::{RefreshCmd, RefreshResp}; use export::data::{AppRequest, AppRequestData, AppResponseData}; #[utoipa::path( post, path = "/auth/refresh", tag = "auth", request_body = AppRequestData, responses( (status = 200, description = "Rotated token pair.", body = AppResponseData), (status = 401, description = "Invalid or expired refresh token.", body = super::openapi::ErrorBody), ), )] pub(crate) async fn handler( State(svc): State, cmd: AppRequest, ) -> Result, AuthError> { let resp = svc.refresh(cmd.into_inner()).await?; Ok(AppResponseData::ok(resp)) }