move http error class to router.rs
This commit is contained in:
parent
b9903d6331
commit
5996577ab6
@ -4,8 +4,9 @@ use crate::api::schema::*;
|
|||||||
use serde_json::{Value};
|
use serde_json::{Value};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
use std::fmt;
|
||||||
|
|
||||||
use hyper::{Body, Response};
|
use hyper::{Body, Response, StatusCode};
|
||||||
use hyper::rt::Future;
|
use hyper::rt::Future;
|
||||||
use hyper::http::request::Parts;
|
use hyper::http::request::Parts;
|
||||||
|
|
||||||
@ -34,6 +35,30 @@ pub enum RpcEnvironmentType {
|
|||||||
PRIVILEDGED,
|
PRIVILEDGED,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Fail)]
|
||||||
|
pub struct HttpError {
|
||||||
|
pub code: StatusCode,
|
||||||
|
pub message: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl HttpError {
|
||||||
|
pub fn new(code: StatusCode, message: String) -> Self {
|
||||||
|
HttpError { code, message }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl fmt::Display for HttpError {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
write!(f, "Error {}: {}", self.code, self.message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
macro_rules! http_err {
|
||||||
|
($status:ident, $msg:expr) => {{
|
||||||
|
Error::from(HttpError::new(StatusCode::$status, $msg))
|
||||||
|
}}
|
||||||
|
}
|
||||||
|
|
||||||
type ApiHandlerFn = fn(Value, &ApiMethod, &mut dyn RpcEnvironment) -> Result<Value, Error>;
|
type ApiHandlerFn = fn(Value, &ApiMethod, &mut dyn RpcEnvironment) -> Result<Value, Error>;
|
||||||
|
|
||||||
type ApiAsyncHandlerFn = fn(Parts, Body, Value, &ApiAsyncMethod, &mut dyn RpcEnvironment) -> Result<BoxFut, Error>;
|
type ApiAsyncHandlerFn = fn(Parts, Body, Value, &ApiAsyncMethod, &mut dyn RpcEnvironment) -> Result<BoxFut, Error>;
|
||||||
|
@ -6,7 +6,6 @@ use crate::auth_helpers::*;
|
|||||||
use super::environment::RestEnvironment;
|
use super::environment::RestEnvironment;
|
||||||
use super::formatter::*;
|
use super::formatter::*;
|
||||||
|
|
||||||
use std::fmt;
|
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
@ -84,30 +83,6 @@ impl Service for ApiService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Fail)]
|
|
||||||
pub struct HttpError {
|
|
||||||
pub code: StatusCode,
|
|
||||||
pub message: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl HttpError {
|
|
||||||
pub fn new(code: StatusCode, message: String) -> Self {
|
|
||||||
HttpError { code, message }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl fmt::Display for HttpError {
|
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
|
||||||
write!(f, "Error {}: {}", self.code, self.message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
macro_rules! http_err {
|
|
||||||
($status:ident, $msg:expr) => {{
|
|
||||||
Error::from(HttpError::new(StatusCode::$status, $msg))
|
|
||||||
}}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_request_parameters_async(
|
fn get_request_parameters_async(
|
||||||
info: &'static ApiMethod,
|
info: &'static ApiMethod,
|
||||||
parts: Parts,
|
parts: Parts,
|
||||||
|
Loading…
Reference in New Issue
Block a user