From a808c8d0a978cb2e73a5c8c3158bbba6a920a8ff Mon Sep 17 00:00:00 2001 From: Araozu Date: Fri, 1 Sep 2023 13:01:00 -0500 Subject: [PATCH] [BE] Delete register --- backend/src/controller/register/mod.rs | 19 +++++++++++++++++++ backend/src/cors.rs | 2 +- backend/src/main.rs | 2 ++ backend/src/model/register.rs | 11 +++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/backend/src/controller/register/mod.rs b/backend/src/controller/register/mod.rs index 03eaaa1..c73b753 100644 --- a/backend/src/controller/register/mod.rs +++ b/backend/src/controller/register/mod.rs @@ -7,6 +7,11 @@ pub fn options() -> Status { Status::Ok } +#[options("/register/<_r>")] +pub fn options_delete(_r: i32) -> Status { + Status::Ok +} + #[post("/register/batch", format = "json", data = "")] pub async fn insert_all(data: Json>) -> Status { for register_create in data.iter() { @@ -34,3 +39,17 @@ pub async fn get_by_dni(dni: i32) -> (Status, Json>) { } } } + +#[delete("/register/")] +pub async fn delete(register_id: i32) -> Status { + let res = Register::delete(register_id).await; + + match res { + Ok(_) => Status::Ok, + Err(err) => { + eprintln!("{:?}", err); + + Status::InternalServerError + } + } +} diff --git a/backend/src/cors.rs b/backend/src/cors.rs index e6225e4..c221a41 100644 --- a/backend/src/cors.rs +++ b/backend/src/cors.rs @@ -21,7 +21,7 @@ impl Fairing for Cors { response.set_header(Header::new("Access-Control-Allow-Origin", "*")); response.set_header(Header::new( "Access-Control-Allow-Methods", - "POST, GET, OPTIONS", + "POST, GET, DELETE, OPTIONS", )); response.set_header(Header::new("Access-Control-Allow-Headers", "Content-Type")); } diff --git a/backend/src/main.rs b/backend/src/main.rs index 2ca2c20..96b98ba 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -45,7 +45,9 @@ async fn rocket() -> _ { controller::course::get_all, controller::register::insert_all, controller::register::options, + controller::register::options_delete, controller::register::get_by_dni, + controller::register::delete, ], ) } diff --git a/backend/src/model/register.rs b/backend/src/model/register.rs index fd0c8fa..38e41fb 100644 --- a/backend/src/model/register.rs +++ b/backend/src/model/register.rs @@ -133,4 +133,15 @@ impl Register { Ok(res) } + + pub async fn delete(register_id: i32) -> Result<(), sqlx::Error> { + let db = db(); + + let _ = sqlx::query!("DELETE FROM register WHERE register_id = ?", register_id) + .execute(db) + .await?; + + Ok(()) + } } +