Rename VResponse to AuthResponse and use it only in Authentication
This commit is contained in:
parent
0663a70c97
commit
aa7229eae4
@ -94,26 +94,27 @@ struct UserOverview {
|
|||||||
#[derive(Deserialize, Serialize)]
|
#[derive(Deserialize, Serialize)]
|
||||||
#[serde(tag = "type", content = "content", rename_all = "kebab-case")]
|
#[serde(tag = "type", content = "content", rename_all = "kebab-case")]
|
||||||
#[typeshare]
|
#[typeshare]
|
||||||
enum VResponse<A> {
|
enum AuthResponse<A> {
|
||||||
Success(A),
|
Success(A),
|
||||||
PasswordReset(SessionId),
|
PasswordReset(SessionId),
|
||||||
Nothing,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[axum::debug_handler]
|
#[axum::debug_handler]
|
||||||
async fn check_password(
|
async fn check_password(
|
||||||
request: Json<AuthRequest>,
|
request: Json<AuthRequest>,
|
||||||
) -> (StatusCode, Json<Option<VResponse<SessionId>>>) {
|
) -> (StatusCode, Json<Option<AuthResponse<SessionId>>>) {
|
||||||
let Json(request) = request;
|
let Json(request) = request;
|
||||||
if request.username == "vakarian" && request.password == "aoeu" {
|
if request.username == "vakarian" && request.password == "aoeu" {
|
||||||
(
|
(
|
||||||
StatusCode::OK,
|
StatusCode::OK,
|
||||||
Json(Some(VResponse::Success("vakarian-session-id".into()))),
|
Json(Some(AuthResponse::Success("vakarian-session-id".into()))),
|
||||||
)
|
)
|
||||||
} else if request.username == "shephard" && request.password == "aoeu" {
|
} else if request.username == "shephard" && request.password == "aoeu" {
|
||||||
(
|
(
|
||||||
StatusCode::OK,
|
StatusCode::OK,
|
||||||
Json(Some(VResponse::PasswordReset("shephard-session-id".into()))),
|
Json(Some(AuthResponse::PasswordReset(
|
||||||
|
"shephard-session-id".into(),
|
||||||
|
))),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
(StatusCode::UNAUTHORIZED, Json(None))
|
(StatusCode::UNAUTHORIZED, Json(None))
|
||||||
@ -154,7 +155,7 @@ fn parse_session_header(headers: HeaderMap) -> ResultExt<Option<SessionId>, AppE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn auth_required<B, F, Fut>(headers: HeaderMap, f: F) -> (StatusCode, Json<VResponse<B>>)
|
async fn auth_required<B, F, Fut>(headers: HeaderMap, f: F) -> (StatusCode, Json<Option<B>>)
|
||||||
where
|
where
|
||||||
F: Fn() -> Fut,
|
F: Fn() -> Fut,
|
||||||
Fut: Future<Output = (StatusCode, B)>,
|
Fut: Future<Output = (StatusCode, B)>,
|
||||||
@ -163,16 +164,14 @@ where
|
|||||||
ResultExt::Ok(Some(session_id)) => {
|
ResultExt::Ok(Some(session_id)) => {
|
||||||
if session_id == "vakarian-session-id".into() {
|
if session_id == "vakarian-session-id".into() {
|
||||||
let (code, result) = f().await;
|
let (code, result) = f().await;
|
||||||
(code, Json(VResponse::Success(result)))
|
(code, Json(Some(result)))
|
||||||
} else if session_id == "shephard-id".into() {
|
|
||||||
(StatusCode::OK, Json(VResponse::PasswordReset("shephard-session-id".into())))
|
|
||||||
} else {
|
} else {
|
||||||
(StatusCode::UNAUTHORIZED, Json(VResponse::Nothing))
|
(StatusCode::UNAUTHORIZED, Json(None))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ResultExt::Ok(None) => (StatusCode::UNAUTHORIZED, Json(VResponse::Nothing)),
|
ResultExt::Ok(None) => (StatusCode::UNAUTHORIZED, Json(None)),
|
||||||
ResultExt::Err(AppError::Unauthorized) => (StatusCode::UNAUTHORIZED, Json(VResponse::Nothing)),
|
ResultExt::Err(AppError::Unauthorized) => (StatusCode::UNAUTHORIZED, Json(None)),
|
||||||
ResultExt::Err(AppError::BadRequest) => (StatusCode::BAD_REQUEST, Json(VResponse::Nothing)),
|
ResultExt::Err(AppError::BadRequest) => (StatusCode::BAD_REQUEST, Json(None)),
|
||||||
ResultExt::Fatal(err) => {
|
ResultExt::Fatal(err) => {
|
||||||
panic!("{}", err);
|
panic!("{}", err);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user