./ct_report/coverage/mongoose_graphql_last_admin_query.COVER.html

1 -module(mongoose_graphql_last_admin_query).
2 -behaviour(mongoose_graphql).
3
4 -export([execute/4]).
5
6 -ignore_xref([execute/4]).
7
8 -include("../mongoose_graphql_types.hrl").
9
10 -import(mongoose_graphql_helper, [make_error/2, format_result/2, null_to_default/2]).
11 -import(mongoose_graphql_last_helper, [format_old_users/1]).
12
13 -type old_users() :: mongoose_graphql_last_helper:old_users().
14 -type last_info() :: mongoose_graphql_last_helper:last_info().
15 -type args() :: mongoose_graphql:args().
16
17 execute(_Ctx, last, <<"getLast">>, Args) ->
18 8 get_last(Args);
19 execute(_Ctx, last, <<"countActiveUsers">>, Args) ->
20 8 count_active_users(Args);
21 execute(_Ctx, last, <<"listOldUsers">>, Args) ->
22 12 list_old_users(Args).
23
24 -spec get_last(args()) -> {ok, last_info()} | {error, resolver_error()}.
25 get_last(#{<<"user">> := JID}) ->
26 8 mongoose_graphql_last_helper:get_last(JID).
27
28 -spec count_active_users(args()) -> {ok, pos_integer()} | {error, resolver_error()}.
29 count_active_users(#{<<"domain">> := Domain, <<"timestamp">> := Timestamp}) ->
30 8 DefTimestamp = null_to_default(Timestamp, os:system_time(microsecond)),
31 8 TimestampSec = mongoose_graphql_last_helper:microseconds_to_seconds(DefTimestamp),
32 8 Res = mod_last_api:count_active_users(Domain, TimestampSec),
33 8 format_result(Res, #{domain => Domain}).
34
35 -spec list_old_users(args()) -> {ok, old_users()} | {error, resolver_error()}.
36 list_old_users(#{<<"domain">> := null, <<"timestamp">> := Timestamp}) ->
37 8 Timestamp2 = mongoose_graphql_last_helper:microseconds_to_seconds(Timestamp),
38 8 {ok, OldUsers} = mod_last_api:list_old_users(Timestamp2),
39 8 {ok, format_old_users(OldUsers)};
40 list_old_users(#{<<"domain">> := Domain, <<"timestamp">> := Timestamp}) ->
41 4 Timestamp2 = mongoose_graphql_last_helper:microseconds_to_seconds(Timestamp),
42 4 case mod_last_api:list_old_users(Domain, Timestamp2) of
43 {ok, OldUsers} ->
44 2 {ok, format_old_users(OldUsers)};
45 Error ->
46 2 make_error(Error, #{domain => Domain})
47 end.
Line Hits Source