Статистика для дашборда #7
This commit is contained in:
@@ -17,7 +17,15 @@ generate_jwt(UserId, Role) ->
|
||||
eventhub_auth:generate_user_token(UserId, Role).
|
||||
|
||||
verify_jwt(Token) ->
|
||||
eventhub_auth:verify_user_token(Token).
|
||||
case eventhub_auth:verify_user_token(Token) of
|
||||
{ok, UserId, Role} -> {ok, UserId, Role};
|
||||
{error, _} ->
|
||||
% Если не подошёл пользовательский, пробуем админский
|
||||
case eventhub_auth:verify_admin_token(Token) of
|
||||
{ok, AdminId, Role} -> {ok, AdminId, Role};
|
||||
{error, Reason} -> {error, Reason}
|
||||
end
|
||||
end.
|
||||
|
||||
generate_refresh_token(UserId) ->
|
||||
eventhub_auth:generate_refresh_token(UserId).
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
-module(logic_stats).
|
||||
-export([get_stats/2]).
|
||||
|
||||
-include("records.hrl").
|
||||
|
||||
-spec get_stats(Role :: atom(), AdminId :: binary()) -> map().
|
||||
get_stats(superadmin, _AdminId) ->
|
||||
#{
|
||||
users => core_user:count_users(),
|
||||
calendars => core_calendar:count_calendars(),
|
||||
events => core_event:count_events(),
|
||||
bookings => core_booking:count_bookings(),
|
||||
reviews => core_review:count_reviews(),
|
||||
reports_total => core_report:count_reports_by_status(pending),
|
||||
tickets_open => core_ticket:count_tickets_by_status(open),
|
||||
subscriptions => core_subscription:count_subscription()
|
||||
};
|
||||
get_stats(moderator, AdminId) ->
|
||||
#{
|
||||
reports_reviewed => core_report:count_reports_by_admin(AdminId, reviewed),
|
||||
events_moderated => 0 % пока заглушка, можно добавить позже
|
||||
};
|
||||
get_stats(support, AdminId) ->
|
||||
#{
|
||||
tickets_assigned => core_ticket:count_tickets_by_admin(AdminId, open),
|
||||
reports_pending => core_report:count_reports_by_status(pending)
|
||||
};
|
||||
get_stats(_, _) ->
|
||||
#{}.
|
||||
Reference in New Issue
Block a user