From ddd970cb40af17b8556d755eff62ec8c89036034 Mon Sep 17 00:00:00 2001 From: lifegpc Date: Wed, 28 Sep 2022 04:19:11 +0000 Subject: [PATCH] Update --- src/server/auth/token.rs | 17 +---------------- src/server/auth/user.rs | 16 +--------------- src/server/context.rs | 27 ++++++++++++++++++++++++++- 3 files changed, 28 insertions(+), 32 deletions(-) diff --git a/src/server/auth/token.rs b/src/server/auth/token.rs index 469f74b..d9197f3 100644 --- a/src/server/auth/token.rs +++ b/src/server/auth/token.rs @@ -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 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) } } diff --git a/src/server/auth/user.rs b/src/server/auth/user.rs index fed1782..3d9e243 100644 --- a/src/server/auth/user.rs +++ b/src/server/auth/user.rs @@ -189,21 +189,7 @@ impl ResponseJsonFor 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) } } diff --git a/src/server/context.rs b/src/server/context.rs index 7498165..df259aa 100644 --- a/src/server/context.rs +++ b/src/server/context.rs @@ -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, 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,