feat(issues): add issue_pin list handler
zhenyi committed
Added lib/issues/handler/issue_pin/list.rs lib/issues/handler/issue_pin/list.rs +25 −0 View lib/issues/handler/issue_pin/list.rs
@@ -0,0 +1,25 @@
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_pin::PinView;
9
10#[utoipa::path(
11 get,
12 path = "/issues/{channel_id}/pins",
13 tag = "issues",
14 responses((status = 200, description = "List pinned issues")),
15 security(("bearer_auth" = []))
16)]
17pub(crate) async fn handler(
18 State(svc): State<IssueService>,
19 AuthUser { claims }: AuthUser,
20 Path(channel_id): Path<Uuid>,
21) -> IssueResult<Json<Vec<PinView>>> {
22 let collection = svc.ensure_default_collection(channel_id).await?;
23 let views = svc.list_pins(claims.sub, channel_id, collection.id).await?;
24 Ok(Json(views))
25}
No newline at end of file