use actix_web::{http::header::LOCATION, web, HttpResponse, Responder}; use sqlx::PgPool; use crate::{endpoints::area::AreaForm, models::{Area, Role, User}}; #[actix_web::post("/area/new")] pub async fn post( user: web::ReqData, pool: web::Data, form: web::Form, ) -> impl Responder { if user.role != Role::Admin { return HttpResponse::Unauthorized().finish(); } match Area::create(pool.get_ref(), &form.name).await { Ok(_) => { return HttpResponse::Found() .insert_header((LOCATION, "/locations")) .insert_header(("HX-LOCATION", "/locations")) .finish() } Err(err) => { println!("{}", err); return HttpResponse::InternalServerError().finish(); } } }