diff options
| author | WriterV2 <primary-v2@protonmail.com> | 2024-11-07 18:35:27 +0100 |
|---|---|---|
| committer | WriterV2 <primary-v2@protonmail.com> | 2024-11-07 18:35:27 +0100 |
| commit | 680867b4bb5e2708f02fc3f8c21c3563975c44c7 (patch) | |
| tree | 0e90e583f1696d3c7c66484a5f8dbd919c75245d /src/handlers/admin.rs | |
| parent | 99fc959383d5b7b26d8e80f6257adf8b98989f41 (diff) | |
Feat: Add admin API route to delete story by product id
Diffstat (limited to 'src/handlers/admin.rs')
| -rw-r--r-- | src/handlers/admin.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/handlers/admin.rs b/src/handlers/admin.rs index 7c016dd..3d16b32 100644 --- a/src/handlers/admin.rs +++ b/src/handlers/admin.rs @@ -132,3 +132,21 @@ pub async fn upload_story( .await?; Ok((StatusCode::CREATED, Json(story)).into_response()) } + +pub async fn delete_story( + ctx: Extension<ApiContext>, + mut multipart: Multipart, +) -> Result<impl IntoResponse, AppError> { + if let Some(field) = multipart.next_field().await? { + if let Some(label) = field.name() { + if label == "id" { + let pid = field.text().await?.parse::<i64>()?; + Story::delete(&ctx.pool, pid).await?; + return Ok((StatusCode::NO_CONTENT).into_response()); + } + return Ok(StatusCode::BAD_REQUEST.into_response()); + } + return Ok(StatusCode::BAD_REQUEST.into_response()); + } + Ok(StatusCode::BAD_REQUEST.into_response()) +} |
