feat: user API голосования за отзывы (like/dislike). Refs EventHub/EventHubBack#47
CI / test (push) Failing after 45m52s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped

This commit is contained in:
2026-07-19 21:31:29 +03:00
parent 0c8a87df75
commit 5b638de450
17 changed files with 3539 additions and 2762 deletions
+5 -2
View File
@@ -92,6 +92,7 @@ review_schema() ->
reason => #{type => string, nullable => true},
likes => #{type => integer},
dislikes => #{type => integer},
my_vote => #{type => string, enum => [<<"like">>, <<"dislike">>, null], nullable => true},
created_at => #{type => string, format => <<"date-time">>},
updated_at => #{type => string, format => <<"date-time">>}
}
@@ -128,7 +129,8 @@ get_review(Req) ->
ReviewId = cowboy_req:binding(id, Req1),
case logic_review:get_review(UserId, ReviewId) of
{ok, Review} ->
handler_utils:send_json(Req1, 200, handler_utils:review_to_json(Review));
MyVote = logic_review:my_vote(UserId, ReviewId),
handler_utils:send_json(Req1, 200, handler_utils:review_to_json(Review, MyVote));
{error, access_denied} ->
handler_utils:send_error(Req1, 403, <<"Access denied">>);
{error, not_found} ->
@@ -154,7 +156,8 @@ update_review(Req) ->
{ok, _} ->
case core_review:get_by_id(ReviewId) of
{ok, Updated} ->
handler_utils:send_json(Req2, 200, handler_utils:review_to_json(Updated));
MyVote = logic_review:my_vote(UserId, ReviewId),
handler_utils:send_json(Req2, 200, handler_utils:review_to_json(Updated, MyVote));
_ ->
handler_utils:send_error(Req2, 500, <<"Failed to retrieve updated review">>)
end;