Skip to content
Clone

feat(issues): add issue_user update handler

zhenyi committed
parent 42cb7d1 commit 6c7d819 Browse files

1 file changed

+28 −0

Added lib/issues/handler/issue_user/update.rs View lib/issues/handler/issue_user/update.rs
@@ -0,0 +1,28 @@
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::issue_user::{IssueUserView, UpdateIssueUserOption};
9
10#[utoipa::path(
11 patch,
12 path = "/issues/{channel_id}/{issue_id}/users/{uid}",
13 tag = "issues",
14 request_body = UpdateIssueUserOption,
15 responses((status = 200, description = "Update issue user", body = IssueUserView)),
16 security(("bearer_auth" = []))
17)]
18pub(crate) async fn handler(
19 State(svc): State<IssueService>,
20 AuthUser { claims }: AuthUser,
21 Path((channel_id, issue_id, uid)): Path<(Uuid, Uuid, Uuid)>,
22 Json(input): Json<UpdateIssueUserOption>,
23) -> IssueResult<Json<IssueUserView>> {
24 let view = svc
25 .update_issue_user(claims.sub, channel_id, issue_id, uid, input)
26 .await?;
27 Ok(Json(view))
28}
No newline at end of file