feat: upsert stats counters, daily buckets and ETS tops for admin metrics. Refs EventHub/EventHubBack#42 #43 #44 #45 #46
This commit is contained in:
@@ -141,26 +141,19 @@ delete_ticket(AdminId, TicketId) ->
|
||||
get_statistics(AdminId) ->
|
||||
case admin_utils:is_admin(AdminId) of
|
||||
true ->
|
||||
All = core_ticket:list_all(),
|
||||
Open = count_by_status(All, open),
|
||||
InProgress = count_by_status(All, in_progress),
|
||||
Resolved = count_by_status(All, resolved),
|
||||
Closed = count_by_status(All, closed),
|
||||
TotalErrors = lists:sum([T#ticket.count || T <- All]),
|
||||
#{
|
||||
total_tickets => length(All),
|
||||
open => Open,
|
||||
in_progress => InProgress,
|
||||
resolved => Resolved,
|
||||
closed => Closed,
|
||||
total_errors => TotalErrors
|
||||
total_tickets => core_ticket:count_tickets(),
|
||||
open => core_ticket:count_tickets_by_status(open),
|
||||
in_progress => core_ticket:count_tickets_by_status(in_progress),
|
||||
resolved => core_ticket:count_tickets_by_status(resolved),
|
||||
closed => core_ticket:count_tickets_by_status(closed),
|
||||
total_errors => core_stats:with_counter(ticket_errors_sum, fun() ->
|
||||
lists:sum([T#ticket.count || T <- core_ticket:list_all()])
|
||||
end)
|
||||
};
|
||||
false -> {error, access_denied}
|
||||
end.
|
||||
|
||||
count_by_status(Tickets, Status) ->
|
||||
length([T || T <- Tickets, normalize_status(T#ticket.status) =:= Status]).
|
||||
|
||||
normalize_status(Status) when is_atom(Status) -> Status;
|
||||
normalize_status(Status) when is_binary(Status) ->
|
||||
try binary_to_existing_atom(Status, utf8)
|
||||
|
||||
Reference in New Issue
Block a user