Skip to content
Clone

refactor(user): refresh profile memes handler

zhenyi committed
parent 1570da2 commit 6d47801 Browse files

1 file changed

+13 −12

Modified lib/user/handler/profile/memes.rs View lib/user/handler/profile/memes.rs
@@ -1,5 +1,5 @@
1use axum::Json;
21use axum::extract::{Path, State};
2use export::data::{AppRequest, AppRequestData, AppResponseData, NoData};
33use jwt::extractor::AuthUser;
44use serde::Deserialize;
55use uuid::Uuid;
@@ -27,7 +27,7 @@
2727 ("limit" = Option<usize>, Query, description = "Maximum items (default 20)."),
2828 ),
2929 responses(
30 (status = 200, description = "List the caller's favorite memes.", body = Vec<MemeView>),
30 (status = 200, description = "List the caller's favorite memes.", body = AppResponseData<Vec<MemeView>>),
3131 ),
3232 security(("bearer_auth" = [])),
3333)]
@@ -35,28 +35,28 @@
3535 State(svc): State<UserService>,
3636 AuthUser { claims }: AuthUser,
3737 axum::extract::Query(q): axum::extract::Query<ListMemesQuery>,
38) -> UserResult<Json<Vec<MemeView>>> {
38) -> UserResult<AppResponseData<Vec<MemeView>>> {
3939 let rows = svc.list_memes(claims.sub, q.limit).await?;
40 Ok(Json(rows))
40 Ok(AppResponseData::ok(rows))
4141}
4242
4343#[utoipa::path(
4444 post,
4545 path = "/user/me/memes",
4646 tag = "user",
47 request_body = UpsertMemeCmd,
47 request_body = AppRequestData<UpsertMemeCmd>,
4848 responses(
49 (status = 200, description = "Meme created or updated.", body = MemeView),
49 (status = 200, description = "Meme created or updated.", body = AppResponseData<MemeView>),
5050 ),
5151 security(("bearer_auth" = [])),
5252)]
5353pub(crate) async fn create_handler(
5454 State(svc): State<UserService>,
5555 AuthUser { claims }: AuthUser,
56 Json(cmd): Json<UpsertMemeCmd>,
57) -> UserResult<Json<MemeView>> {
58 let row = svc.upsert_meme(claims.sub, cmd).await?;
59 Ok(Json(row))
56 cmd: AppRequest<UpsertMemeCmd>,
57) -> UserResult<AppResponseData<MemeView>> {
58 let row = svc.upsert_meme(claims.sub, cmd.into_inner()).await?;
59 Ok(AppResponseData::ok(row))
6060}
6161
6262#[utoipa::path(
@@ -75,6 +75,7 @@
7575 State(svc): State<UserService>,
7676 AuthUser { claims }: AuthUser,
7777 Path(id): Path<Uuid>,
78) -> UserResult<()> {
79 svc.delete_meme(claims.sub, id).await
78) -> UserResult<AppResponseData<NoData>> {
79 svc.delete_meme(claims.sub, id).await?;
80 Ok(AppResponseData::<NoData>::empty())
8081}
No newline at end of file