Refactored code, working with database data
This commit is contained in:
@@ -1,67 +1,61 @@
|
||||
use crate::airports::{Airport, Airports};
|
||||
use crate::error_handler::CustomError;
|
||||
use actix_web::{delete, get, post, put, web, HttpResponse};
|
||||
use log::error;
|
||||
use serde_json::json;
|
||||
|
||||
#[get("/airports")]
|
||||
async fn find_all() -> Result<HttpResponse, CustomError> {
|
||||
let airports = match web::block(|| Airports::find_all()).await.unwrap() {
|
||||
Ok(a) => a,
|
||||
async fn find_all() -> HttpResponse {
|
||||
match web::block(|| Airports::find_all()).await.unwrap() {
|
||||
Ok(a) => HttpResponse::Ok().json(a),
|
||||
Err(err) => {
|
||||
error!("{}", err);
|
||||
return Err(err);
|
||||
HttpResponse::InternalServerError().finish()
|
||||
}
|
||||
};
|
||||
Ok(HttpResponse::Ok().json(airports))
|
||||
}
|
||||
}
|
||||
|
||||
#[get("/airports/{id}")]
|
||||
async fn find(id: web::Path<i32>) -> Result<HttpResponse, CustomError> {
|
||||
let airport = match Airports::find(id.into_inner()) {
|
||||
Ok(a) => a,
|
||||
async fn find(id: web::Path<i32>) -> HttpResponse {
|
||||
match Airports::find(id.into_inner()) {
|
||||
Ok(a) => HttpResponse::Ok().json(a),
|
||||
Err(err) => {
|
||||
error!("{}", err);
|
||||
return Err(err);
|
||||
HttpResponse::InternalServerError().finish()
|
||||
}
|
||||
};
|
||||
Ok(HttpResponse::Ok().json(airport))
|
||||
}
|
||||
}
|
||||
|
||||
#[post("/airports")]
|
||||
async fn create(airport: web::Json<Airport>) -> Result<HttpResponse, CustomError> {
|
||||
let airport = match Airports::create(airport.into_inner()) {
|
||||
Ok(a) => a,
|
||||
async fn create(airport: web::Json<Airport>) -> HttpResponse {
|
||||
match Airports::create(airport.into_inner()) {
|
||||
Ok(a) => HttpResponse::Ok().json(a),
|
||||
Err(err) => {
|
||||
error!("{}", err);
|
||||
return Err(err);
|
||||
HttpResponse::InternalServerError().finish()
|
||||
}
|
||||
};
|
||||
Ok(HttpResponse::Ok().json(airport))
|
||||
}
|
||||
}
|
||||
|
||||
#[put("/airports/{id}")]
|
||||
async fn update(id: web::Path<i32>, airport: web::Json<Airport>) -> Result<HttpResponse, CustomError> {
|
||||
let airport = match Airports::update(id.into_inner(), airport.into_inner()) {
|
||||
Ok(a) => a,
|
||||
async fn update(id: web::Path<i32>, airport: web::Json<Airport>) -> HttpResponse {
|
||||
match Airports::update(id.into_inner(), airport.into_inner()) {
|
||||
Ok(a) => HttpResponse::Ok().json(a),
|
||||
Err(err) => {
|
||||
error!("{}", err);
|
||||
return Err(err);
|
||||
HttpResponse::InternalServerError().finish()
|
||||
}
|
||||
};
|
||||
Ok(HttpResponse::Ok().json(airport))
|
||||
}
|
||||
}
|
||||
|
||||
#[delete("/airports/{id}")]
|
||||
async fn delete(id: web::Path<i32>) -> Result<HttpResponse, CustomError> {
|
||||
let deleted_airport = match Airports::delete(id.into_inner()) {
|
||||
Ok(a) => a,
|
||||
async fn delete(id: web::Path<i32>) -> HttpResponse {
|
||||
match Airports::delete(id.into_inner()) {
|
||||
Ok(a) => HttpResponse::Ok().json(json!({ "deleted": a })),
|
||||
Err(err) => {
|
||||
error!("{}", err);
|
||||
return Err(err);
|
||||
HttpResponse::InternalServerError().finish()
|
||||
}
|
||||
};
|
||||
Ok(HttpResponse::Ok().json(json!({ "deleted": deleted_airport })))
|
||||
}
|
||||
}
|
||||
|
||||
pub fn init_routes(config: &mut web::ServiceConfig) {
|
||||
|
||||
@@ -6,6 +6,7 @@ extern crate diesel_migrations;
|
||||
use actix_cors::Cors;
|
||||
use actix_web::{App, HttpServer, middleware::Logger};
|
||||
use dotenv::dotenv;
|
||||
use env_logger::Env;
|
||||
use listenfd::ListenFd;
|
||||
use log::debug;
|
||||
use std::env;
|
||||
@@ -22,7 +23,7 @@ async fn main() -> std::io::Result<()> {
|
||||
if std::env::var_os("RUST_LOG").is_none() {
|
||||
std::env::set_var("RUST_LOG", "info,actix=info,diesel_migrations=warn,reqwest=warn,hyper=warn");
|
||||
}
|
||||
env_logger::init();
|
||||
env_logger::init_from_env(Env::default().default_filter_or("info"));
|
||||
db::init();
|
||||
|
||||
let mut listenfd = ListenFd::from_env();
|
||||
|
||||
Reference in New Issue
Block a user