This commit is contained in:
2022-09-28 04:19:11 +00:00
committed by GitHub
parent 76f9cb45a8
commit ddd970cb40
3 changed files with 28 additions and 32 deletions

View File

@@ -1,5 +1,4 @@
use super::super::preclude::*;
use crate::ext::json::ToJson2;
/// Action to perform about token
pub enum AuthTokenAction {
@@ -58,21 +57,7 @@ impl ResponseJsonFor<Body> for AuthTokenContext {
builder
};
let re = self.handle(req).await;
let builder = match &re {
Ok(_) => builder,
Err(err) => {
if err.code <= -400 && err.code >= -600 {
builder.status((-err.code) as u16)
} else if err.code < 0 {
builder.status(500)
} else if err.code > 0 {
builder.status(400)
} else {
builder
}
}
};
Ok(builder.body(re.to_json2())?)
self.ctx.response_json_result(builder, re)
}
}

View File

@@ -189,21 +189,7 @@ impl ResponseJsonFor<Body> for AuthUserContext {
builder
};
let re = self.handle(req).await;
let builder = match &re {
Ok(_) => builder,
Err(err) => {
if err.code <= -400 && err.code >= -600 {
builder.status((-err.code) as u16)
} else if err.code < 0 {
builder.status(500)
} else if err.code > 0 {
builder.status(400)
} else {
builder
}
}
};
Ok(builder.body(re.to_json2())?)
self.ctx.response_json_result(builder, re)
}
}

View File

@@ -1,12 +1,15 @@
use super::auth::RSAKey;
use super::cors::CorsContext;
use super::params::RequestParams;
use super::result::JSONResult;
use crate::db::{open_and_init_database, PixivDownloaderDb, User};
use crate::error::PixivDownloaderError;
use crate::ext::json::ToJson2;
use crate::get_helper;
use crate::gettext;
use futures_util::lock::Mutex;
use hyper::{Body, Request};
use hyper::{http::response::Builder, Body, Request, Response};
use json::JsonValue;
use std::collections::BTreeMap;
pub struct ServerContext {
@@ -27,6 +30,28 @@ impl ServerContext {
}
}
pub fn response_json_result(
&self,
builder: Builder,
re: JSONResult,
) -> Result<Response<JsonValue>, PixivDownloaderError> {
let builder = match &re {
Ok(_) => builder,
Err(err) => {
if err.code <= -400 && err.code >= -600 {
builder.status((-err.code) as u16)
} else if err.code < 0 {
builder.status(500)
} else if err.code > 0 {
builder.status(400)
} else {
builder
}
}
};
Ok(builder.body(re.to_json2())?)
}
pub async fn verify_token(
&self,
req: &Request<Body>,