Skip to content
Clone

feat(issues): add issues create handler

zhenyi committed
parent 684ce80 commit b679483 Browse files

1 file changed

+25 −0

Added lib/issues/handler/issues/create.rs View lib/issues/handler/issues/create.rs
@@ -0,0 +1,25 @@
1use axum::Json;
2use axum::extract::State;
3use axum::http::StatusCode;
4use jwt::extractor::AuthUser;
5
6use crate::error::IssueResult;
7use crate::features::IssueService;
8use crate::features::issues::{CollectionView, CreateCollectionOption};
9
10#[utoipa::path(
11 post,
12 path = "/issues",
13 tag = "issues",
14 request_body = CreateCollectionOption,
15 responses((status = 201, description = "Create an issue board (collection)", body = CollectionView)),
16 security(("bearer_auth" = []))
17)]
18pub(crate) async fn handler(
19 State(svc): State<IssueService>,
20 AuthUser { claims }: AuthUser,
21 Json(input): Json<CreateCollectionOption>,
22) -> IssueResult<(StatusCode, Json<CollectionView>)> {
23 let view = svc.create_collection(claims.sub, input).await?;
24 Ok((StatusCode::CREATED, Json(view)))
25}
No newline at end of file