From 1ad0e4400a7a063bfdc899c0e06acf097e032e07 Mon Sep 17 00:00:00 2001 From: Mika Date: Wed, 2 Apr 2025 21:22:17 +0200 Subject: [PATCH] WIP --- crates/backend/src/controller/class.rs | 7 ++++++- crates/backend/src/controller/group.rs | 7 ++++++- crates/backend/src/controller/project.rs | 21 +++++++++++++++++++-- crates/backend/src/controller/template.rs | 7 ++++++- crates/backend/src/controller/user.rs | 7 ++++++- crates/backend/src/db/group.rs | 8 ++++++-- crates/backend/src/db/project.rs | 13 +++++++++++++ 7 files changed, 62 insertions(+), 8 deletions(-) diff --git a/crates/backend/src/controller/class.rs b/crates/backend/src/controller/class.rs index e3e3498..d6d11dd 100644 --- a/crates/backend/src/controller/class.rs +++ b/crates/backend/src/controller/class.rs @@ -1,4 +1,4 @@ -use actix_web::{Responder, delete, get, post}; +use actix_web::{Responder, delete, get, post, put}; pub fn setup(cfg: &mut actix_web::web::ServiceConfig) { cfg.service(get_classes) @@ -22,6 +22,11 @@ async fn create_class() -> impl Responder { "" } +#[put("")] +async fn change_class() -> impl Responder { + "" +} + #[delete("/{id}")] async fn delete_class() -> impl Responder { "" diff --git a/crates/backend/src/controller/group.rs b/crates/backend/src/controller/group.rs index 648788e..11e7da3 100644 --- a/crates/backend/src/controller/group.rs +++ b/crates/backend/src/controller/group.rs @@ -1,4 +1,4 @@ -use actix_web::{Responder, delete, get, post}; +use actix_web::{Responder, delete, get, post, put}; pub fn setup(cfg: &mut actix_web::web::ServiceConfig) { cfg.service(get_groups) @@ -22,6 +22,11 @@ async fn create_group() -> impl Responder { "" } +#[put("")] +async fn change_group() -> impl Responder { + "" +} + #[delete("/{id}")] async fn delete_group() -> impl Responder { "" diff --git a/crates/backend/src/controller/project.rs b/crates/backend/src/controller/project.rs index c4c8ccf..28f7ad0 100644 --- a/crates/backend/src/controller/project.rs +++ b/crates/backend/src/controller/project.rs @@ -1,5 +1,4 @@ -use actix_web::{Result, delete, get, post, web}; -use log::debug; +use actix_web::{Responder, Result, delete, get, post, put, web}; use sea_orm::prelude::Uuid; use serde::Deserialize; @@ -11,6 +10,12 @@ struct CreateProject { name: String, } +#[derive(Deserialize)] +struct UpdateProject { + id: Uuid, + name: String, +} + pub fn setup(cfg: &mut actix_web::web::ServiceConfig) { cfg.service(get_project) .service(get_projects) @@ -49,6 +54,18 @@ async fn create_project( Ok(web::Json(result)) } +#[put("")] +async fn change_project( + db: web::Data, + update_project_struct: web::Json, +) -> Result, ApiError> { + let updated_project = db + .update_project(update_project_struct.into_inner()) + .await?; + + Ok(web::Json(updated_project)) +} + #[delete("/{id}")] async fn delete_project( db: web::Data, diff --git a/crates/backend/src/controller/template.rs b/crates/backend/src/controller/template.rs index fa62dab..aeaaaf2 100644 --- a/crates/backend/src/controller/template.rs +++ b/crates/backend/src/controller/template.rs @@ -1,4 +1,4 @@ -use actix_web::{Responder, delete, get, post}; +use actix_web::{Responder, delete, get, post, put}; pub fn setup(cfg: &mut actix_web::web::ServiceConfig) { cfg.service(get_templates) @@ -22,6 +22,11 @@ async fn create_template() -> impl Responder { "" } +#[put("")] +async fn change_template() -> impl Responder { + "" +} + #[delete("/{id}")] async fn delete_template() -> impl Responder { "" diff --git a/crates/backend/src/controller/user.rs b/crates/backend/src/controller/user.rs index 3063bfa..8758a9f 100644 --- a/crates/backend/src/controller/user.rs +++ b/crates/backend/src/controller/user.rs @@ -1,4 +1,4 @@ -use actix_web::{Responder, delete, get, post}; +use actix_web::{Responder, delete, get, post, put}; pub fn setup(cfg: &mut actix_web::web::ServiceConfig) { cfg.service(get_users) @@ -22,6 +22,11 @@ async fn create_user() -> impl Responder { "" } +#[put("")] +async fn change_user() -> impl Responder { + "" +} + #[delete("/{id}")] async fn delete_user() -> impl Responder { "" diff --git a/crates/backend/src/db/group.rs b/crates/backend/src/db/group.rs index 0019a00..83983bf 100644 --- a/crates/backend/src/db/group.rs +++ b/crates/backend/src/db/group.rs @@ -1,3 +1,7 @@ -fn add_user_to_group() {} +use super::Database; -fn create_group() {} +impl Database { + async fn add_user_to_group(&self) {} + + async fn create_group(&self) {} +} diff --git a/crates/backend/src/db/project.rs b/crates/backend/src/db/project.rs index 2ddfdf5..ab145a8 100644 --- a/crates/backend/src/db/project.rs +++ b/crates/backend/src/db/project.rs @@ -40,6 +40,19 @@ impl Database { Ok(project) } + pub async fn update_project(&self, project: UpdateProject) -> Result { + debug!("Updating project with id: {}", &project.id); + + let active_model = project::ActiveModel { + id: NotSet, + name: Set(project.name.to_owned()), + }; + + let project = active_model.update(&self.conn).await?; + + Ok(project) + } + pub async fn delete_project(&self, id: &Uuid) -> Result { debug!("Deleting project with id: {}", id);