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)]
|
||||
#[serde(tag = "type", content = "content", rename_all = "kebab-case")]
|
||||
#[typeshare]
|
||||
enum VResponse<A> {
|
||||
enum AuthResponse<A> {
|
||||
Success(A),
|
||||
PasswordReset(SessionId),
|
||||
Nothing,
|
||||
}
|
||||
|
||||
#[axum::debug_handler]
|
||||
async fn check_password(
|
||||
request: Json<AuthRequest>,
|
||||
) -> (StatusCode, Json<Option<VResponse<SessionId>>>) {
|
||||
) -> (StatusCode, Json<Option<AuthResponse<SessionId>>>) {
|
||||
let Json(request) = request;
|
||||
if request.username == "vakarian" && request.password == "aoeu" {
|
||||
(
|
||||
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" {
|
||||
(
|
||||
StatusCode::OK,
|
||||
Json(Some(VResponse::PasswordReset("shephard-session-id".into()))),
|
||||
Json(Some(AuthResponse::PasswordReset(
|
||||
"shephard-session-id".into(),
|
||||
))),
|
||||
)
|
||||
} else {
|
||||
(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
|
||||
F: Fn() -> Fut,
|
||||
Fut: Future<Output = (StatusCode, B)>,
|
||||
@ -163,16 +164,14 @@ where
|
||||
ResultExt::Ok(Some(session_id)) => {
|
||||
if session_id == "vakarian-session-id".into() {
|
||||
let (code, result) = f().await;
|
||||
(code, Json(VResponse::Success(result)))
|
||||
} else if session_id == "shephard-id".into() {
|
||||
(StatusCode::OK, Json(VResponse::PasswordReset("shephard-session-id".into())))
|
||||
(code, Json(Some(result)))
|
||||
} else {
|
||||
(StatusCode::UNAUTHORIZED, Json(VResponse::Nothing))
|
||||
(StatusCode::UNAUTHORIZED, Json(None))
|
||||
}
|
||||
}
|
||||
ResultExt::Ok(None) => (StatusCode::UNAUTHORIZED, Json(VResponse::Nothing)),
|
||||
ResultExt::Err(AppError::Unauthorized) => (StatusCode::UNAUTHORIZED, Json(VResponse::Nothing)),
|
||||
ResultExt::Err(AppError::BadRequest) => (StatusCode::BAD_REQUEST, Json(VResponse::Nothing)),
|
||||
ResultExt::Ok(None) => (StatusCode::UNAUTHORIZED, Json(None)),
|
||||
ResultExt::Err(AppError::Unauthorized) => (StatusCode::UNAUTHORIZED, Json(None)),
|
||||
ResultExt::Err(AppError::BadRequest) => (StatusCode::BAD_REQUEST, Json(None)),
|
||||
ResultExt::Fatal(err) => {
|
||||
panic!("{}", err);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user