Initial commit

This commit is contained in:
2024-06-27 15:04:57 +03:00
commit e8114c515d
40 changed files with 4180 additions and 0 deletions

View File

@ -0,0 +1,37 @@
use crate::prelude::*;
#[derive(Deserialize, Debug)]
pub struct Params {
folder_name: String,
parent_folder_id: Uuid,
}
pub async fn create(
State(state): State<AppState>,
claims: Claims,
Json(params): Json<Params>,
) -> Result<Json<Uuid>, StatusCode> {
db::folder::get_permissions(params.parent_folder_id, claims.user_id, &state.pool)
.await
.handle_internal()?
.can_write_guard()?;
let exists =
db::folder::exists_by_name(params.parent_folder_id, &params.folder_name, &state.pool)
.await
.handle_internal()?;
if exists {
return Err(StatusCode::CONFLICT);
}
let id = db::folder::insert(
params.parent_folder_id,
claims.user_id,
&params.folder_name,
&state.pool,
)
.await
.handle_internal()?;
Ok(Json(id))
}