feat(issues): add issues update handler
zhenyi committed
Added lib/issues/handler/issues/update.rs lib/issues/handler/issues/update.rs +29 −0 View lib/issues/handler/issues/update.rs
@@ -0,0 +1,29 @@
1use axum::Json;
2use axum::extract::{Path, State};
3use jwt::extractor::AuthUser;
4use uuid::Uuid;
5
6use crate::error::IssueResult;
7use crate::features::IssueService;
8use crate::features::issues::{CollectionView, UpdateCollectionOption};
9
10#[utoipa::path(
11 patch,
12 path = "/issues/{channel_id}",
13 tag = "issues",
14 request_body = UpdateCollectionOption,
15 responses((status = 200, description = "Update default issue board", body = CollectionView)),
16 security(("bearer_auth" = []))
17)]
18pub(crate) async fn handler(
19 State(svc): State<IssueService>,
20 AuthUser { claims }: AuthUser,
21 Path(channel_id): Path<Uuid>,
22 Json(input): Json<UpdateCollectionOption>,
23) -> IssueResult<Json<CollectionView>> {
24 let cur = svc.load_default_collection(channel_id).await?;
25 let view = svc
26 .update_collection(claims.sub, cur.channel_id, cur.id, input)
27 .await?;
28 Ok(Json(view))
29}
No newline at end of file