diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-12-09 13:07:14 +0100 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-12-09 13:07:14 +0100 |
| commit | c91dce4f77ae12453203f0a28b91efb6533cc095 (patch) | |
| tree | 4f50e755dff7f717d45309b08f9fe2c8c87f88bd /crates/rocie-server/src/api/get/unit.rs | |
| parent | chore(rocie-client): Regenerate (diff) | |
| download | server-c91dce4f77ae12453203f0a28b91efb6533cc095.zip | |
feat(rocie-server): Implement basic user handling and authentication
Diffstat (limited to 'crates/rocie-server/src/api/get/unit.rs')
| -rw-r--r-- | crates/rocie-server/src/api/get/unit.rs | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/crates/rocie-server/src/api/get/unit.rs b/crates/rocie-server/src/api/get/unit.rs deleted file mode 100644 index caafaa3..0000000 --- a/crates/rocie-server/src/api/get/unit.rs +++ /dev/null @@ -1,105 +0,0 @@ -use actix_web::{HttpResponse, Responder, Result, get, web}; - -use crate::{ - app::App, - storage::sql::{ - unit::{Unit, UnitId, UnitIdStub}, - unit_property::{UnitPropertyId, UnitPropertyIdStub}, - }, -}; - -/// Return all registered units -#[utoipa::path( - responses( - ( - status = OK, - description = "All units founds", - body = Vec<Unit> - ), - ( - status = INTERNAL_SERVER_ERROR, - description = "Server encountered error", - body = String - ) - ), -)] -#[get("/units/")] -pub(crate) async fn units(app: web::Data<App>) -> Result<impl Responder> { - let all = Unit::get_all(&app).await?; - - Ok(HttpResponse::Ok().json(all)) -} - -/// Return all registered units for a specific unit property -#[utoipa::path( - responses( - ( - status = OK, - description = "All units founds", - body = Vec<Unit> - ), - ( - status = INTERNAL_SERVER_ERROR, - description = "Server encountered error", - body = String - ) - ), - params( - ( - "id" = UnitPropertyId, - description = "Unit property id" - ), - ) -)] -#[get("/units-by-property/{id}")] -pub(crate) async fn units_by_property_id( - app: web::Data<App>, - id: web::Path<UnitPropertyIdStub>, -) -> Result<impl Responder> { - let id = id.into_inner(); - let all = Unit::get_all(&app) - .await? - .into_iter() - .filter(|unit| unit.unit_property == id.into()) - .collect::<Vec<_>>(); - - Ok(HttpResponse::Ok().json(all)) -} - -/// Get Unit by id -#[utoipa::path( - responses( - ( - status = OK, - description = "Unit found from database", - body = Unit - ), - ( - status = NOT_FOUND, - description = "Unit not found in database" - ), - ( - status = INTERNAL_SERVER_ERROR, - description = "Server encountered error", - body = String - ) - ), - params( - ( - "id" = UnitId, - description = "Unit id" - ), - ) -)] -#[get("/unit/{id}")] -pub(crate) async fn unit_by_id( - app: web::Data<App>, - id: web::Path<UnitIdStub>, -) -> Result<impl Responder> { - let id = id.into_inner(); - - match Unit::from_id(&app, id.into()).await? { - Some(unit) => Ok(HttpResponse::Ok().json(unit)), - None => Ok(HttpResponse::NotFound().finish()), - } -} |
