-module(handler_ticket_stats). -include("records.hrl"). -export([init/2]). init(Req, Opts) -> handle(Req, Opts). handle(Req, _Opts) -> case cowboy_req:method(Req) of <<"GET">> -> get_statistics(Req); _ -> send_error(Req, 405, <<"Method not allowed">>) end. %% GET /v1/admin/tickets/stats - статистика по тикетам get_statistics(Req) -> case handler_auth:authenticate(Req) of {ok, AdminId, Req1} -> case logic_ticket:get_statistics(AdminId) of Stats when is_map(Stats) -> send_json(Req1, 200, Stats); {error, access_denied} -> send_error(Req1, 403, <<"Admin access required">>); {error, _} -> send_error(Req1, 500, <<"Internal server error">>) end; {error, Code, Message, Req1} -> send_error(Req1, Code, Message) end. send_json(Req, Status, Data) -> Body = jsx:encode(Data), cowboy_req:reply(Status, #{<<"content-type">> => <<"application/json">>}, Body, Req), {ok, Body, []}. send_error(Req, Status, Message) -> Body = jsx:encode(#{error => Message}), cowboy_req:reply(Status, #{<<"content-type">> => <<"application/json">>}, Body, Req), {ok, Body, []}.