Use proper error handling.

This commit is contained in:
Paul Makles
2020-04-07 12:08:07 +01:00
parent badaf8db9d
commit ca0b8411d5
5 changed files with 107 additions and 95 deletions

View File

@@ -1,4 +1,7 @@
use rocket::http::Status;
pub use rocket::response::Redirect;
use rocket::Rocket;
use rocket_contrib::json::JsonValue;
pub mod account;
pub mod channel;
@@ -6,6 +9,36 @@ pub mod guild;
pub mod root;
pub mod user;
#[derive(Responder)]
pub enum Response {
#[response()]
Ok(Option<JsonValue>),
#[response()]
Success(JsonValue),
#[response()]
Redirect(Redirect),
#[response(status = 400)]
BadRequest(JsonValue),
#[response(status = 401)]
Unauthorized(JsonValue),
#[response(status = 404)]
NotFound(JsonValue),
#[response(status = 406)]
NotAcceptable(JsonValue),
#[response(status = 409)]
Conflict(JsonValue),
#[response(status = 410)]
Gone(JsonValue),
#[response(status = 422)]
UnprocessableEntity(JsonValue),
#[response(status = 429)]
TooManyRequests(JsonValue),
#[response(status = 500)]
InternalServerError(JsonValue),
#[response()]
Error(Status),
}
pub fn mount(rocket: Rocket) -> Rocket {
rocket
.mount("/api", routes![root::root])