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