Skip to content
Clone

feat(project): add activities list handler

zhenyi committed
parent fcf2839 commit aace964 Browse files

1 file changed

+28 −0

Added lib/project/handler/activities/list.rs View lib/project/handler/activities/list.rs
@@ -0,0 +1,28 @@
1use axum::extract::{Path, Query, State};
2use export::data::AppResponseData;
3use jwt::extractor::AuthUser;
4
5use crate::error::ProjectResult;
6use crate::features::ProjectService;
7use crate::features::activities::{ActivityPage, ListActivityQuery};
8use crate::handler::query::ProjectPath;
9
10#[utoipa::path(
11 get,
12 path = "/spaces/{space_id}/projects/{project_id}/activities",
13 tag = "project",
14 params(ListActivityQuery),
15 responses((status = 200, description = "List activities", body = AppResponseData<ActivityPage>)),
16 security(("bearer_auth" = []))
17)]
18pub(crate) async fn handler(
19 State(svc): State<ProjectService>,
20 AuthUser { claims }: AuthUser,
21 Path(path): Path<ProjectPath>,
22 Query(q): Query<ListActivityQuery>,
23) -> ProjectResult<AppResponseData<ActivityPage>> {
24 let page = svc
25 .list_activities(claims.sub, path.space_id, path.project_id, q)
26 .await?;
27 Ok(AppResponseData::ok(page))
28}
No newline at end of file