29 lines
1.3 KiB
Rust

use std::sync::Mutex;
use crate::models::client::*;
use actix_web::{web, get, post, patch, delete, Responder, HttpResponse};
use crate::State;
#[get("/")]
pub async fn get_clients(state: web::Data<Mutex<State>>) -> impl Responder {
HttpResponse::Ok().json(state.lock().unwrap().client_repository.read_all().await.unwrap())
}
#[get("/{id}")]
pub async fn get_client(state: web::Data<Mutex<State>>, path: web::Path<(u32, )>) -> impl Responder {
HttpResponse::Ok().json(state.lock().unwrap().client_repository.read(path.into_inner().0).await.unwrap())
}
#[post("/")]
pub async fn create_client(state: web::Data<Mutex<State>>, json: web::Json<BindingClient>) -> impl Responder {
HttpResponse::Ok().json(state.lock().unwrap().client_repository.create(json.0).await.unwrap())
}
#[patch("/{id}")]
pub async fn update_client(state: web::Data<Mutex<State>>, json: web::Json<BindingClient>, path: web::Path<(u32, )>) -> impl Responder {
HttpResponse::Ok().json(state.lock().unwrap().client_repository.update(path.into_inner().0, json.0).await.unwrap())
}
#[delete("/{id}")]
pub async fn delete_client(state: web::Data<Mutex<State>>, path: web::Path<(u32, )>) -> impl Responder {
HttpResponse::Ok().json(state.lock().unwrap().client_repository.delete(path.into_inner().0).await.unwrap())
}