api: Add catchers
- Added catchers for 404, 422 and 500 Signed-off-by: supercmmetry <vishaals2000@gmail.com>
This commit is contained in:
		
							parent
							
								
									de741f451e
								
							
						
					
					
						commit
						0de8fb33da
					
				@ -0,0 +1,34 @@
 | 
			
		||||
use rocket::Rocket;
 | 
			
		||||
use rocket::response::status;
 | 
			
		||||
use rocket::http::Status;
 | 
			
		||||
use rocket_contrib::json::Json;
 | 
			
		||||
use serde_json::Value;
 | 
			
		||||
 | 
			
		||||
#[catch(404)]
 | 
			
		||||
fn not_found() -> status::Custom<Json<Value>> {
 | 
			
		||||
    status::Custom(Status::NotFound, Json(json!({
 | 
			
		||||
        "err":"route not found",
 | 
			
		||||
        "msg": "The given route does not exist"
 | 
			
		||||
    })))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[catch(422)]
 | 
			
		||||
fn unprocessable_entity() -> status::Custom<Json<Value>> {
 | 
			
		||||
    status::Custom(Status::UnprocessableEntity, Json(json!({
 | 
			
		||||
        "err":"failed to process entity",
 | 
			
		||||
        "msg": "The given object could not be processed. This could be due to sending \
 | 
			
		||||
         malformed or incomplete JSON objects in the request body."
 | 
			
		||||
    })))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[catch(500)]
 | 
			
		||||
fn internal_server_error() -> status::Custom<Json<Value>> {
 | 
			
		||||
    status::Custom(Status::NotFound, Json(json!({
 | 
			
		||||
        "err":"internal server error",
 | 
			
		||||
        "msg": "Something went wrong, try again"
 | 
			
		||||
    })))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn fuel(rocket: Rocket) -> Rocket {
 | 
			
		||||
    rocket.register(catchers![not_found, unprocessable_entity, internal_server_error])
 | 
			
		||||
}
 | 
			
		||||
@ -46,6 +46,7 @@ fn main() {
 | 
			
		||||
    let mut rocket = rocket::ignite();
 | 
			
		||||
 | 
			
		||||
    rocket = api::routes::fuel(rocket);
 | 
			
		||||
    rocket = api::catchers::fuel(rocket);
 | 
			
		||||
 | 
			
		||||
    rocket.manage(utils::db::pool())
 | 
			
		||||
        .manage(logger)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user