@@ -14,7 +14,10 @@ use crate::{
1414 self ,
1515 blood_requests:: { BloodRequestQuery , BloodRequestResponse , CreateBloodRequest , UpdateBloodRequest } , settings} ,
1616 models:: { BloodRequest , Hospital , HospitalSettings , User } ,
17- utils:: { enums:: { HospitalTypeEnum , RequestStatusTypeEnum } , response:: ApiResponse } ,
17+ utils:: {
18+ enums:: { HospitalTypeEnum , RequestStatusTypeEnum } ,
19+ response:: { ApiResponse , EmptyData }
20+ } ,
1821} ;
1922
2023/// Create hospital profile
@@ -304,3 +307,31 @@ pub async fn update_hospital_settings(
304307 settings:: update_hospital_settings ( & mut conn, hospital_id, payload) ?;
305308 Ok ( ApiResponse :: success_with_message ( "Hospital settings updated successfully" , settings) )
306309}
310+
311+ #[ utoipa:: path(
312+ delete,
313+ path = "/api/hospitals/{hospital_id}" ,
314+ responses(
315+ ( status = 200 , description = "Hospital deleted successfully" ) ,
316+ ( status = 401 ) ,
317+ ( status = 404 ) ,
318+ ( status = 500 )
319+ ) ,
320+ tag = "hospitals" ,
321+ security( ( "bearer_auth" = [ ] ) )
322+ ) ]
323+ pub async fn delete_hospital (
324+ State ( state) : State < AppState > ,
325+ Extension ( user) : Extension < User > ,
326+ Path ( hospital_id) : Path < Uuid > ,
327+ ) -> Result < ApiResponse < EmptyData > , AppError > {
328+ let mut conn = state. pool . get ( ) ?;
329+
330+ hospitals:: service:: delete_hospital ( & mut conn, hospital_id, & user) ?;
331+
332+ Ok ( ApiResponse :: message_only (
333+ axum:: http:: StatusCode :: OK ,
334+ "Hospital deleted successfully" ,
335+ ) )
336+ }
337+
0 commit comments