1 |
|
-module(mongoose_graphql_session_user_query). |
2 |
|
|
3 |
|
-export([execute/4]). |
4 |
|
|
5 |
|
-ignore_xref([execute/4]). |
6 |
|
|
7 |
|
execute(Ctx, _Obj, <<"listResources">>, Args) -> |
8 |
1 |
list_resources(Ctx, Args); |
9 |
|
execute(Ctx, _Obj, <<"countResources">>, Args) -> |
10 |
1 |
count_resources(Ctx, Args); |
11 |
|
execute(Ctx, _Obj, <<"listSessions">>, Args) -> |
12 |
1 |
list_sessions_info(Ctx, Args). |
13 |
|
|
14 |
|
-spec list_resources(map(), map()) -> {ok, [jid:lresource()]}. |
15 |
|
list_resources(#{user := JID}, _Args) -> |
16 |
1 |
Resources = mongoose_session_api:list_user_resources(JID), |
17 |
1 |
Result = lists:map(fun(R) -> {ok, R} end, Resources), |
18 |
1 |
{ok, Result}. |
19 |
|
|
20 |
|
-spec count_resources(map(), map()) -> {ok, non_neg_integer()}. |
21 |
|
count_resources(#{user := JID}, _Args) -> |
22 |
1 |
Number = length(mongoose_session_api:list_user_resources(JID)), |
23 |
1 |
{ok, Number}. |
24 |
|
|
25 |
|
-spec list_sessions_info(map(), map()) -> {ok, mongoose_graphql_session_helper:session_list()}. |
26 |
|
list_sessions_info(#{user := JID}, _Args) -> |
27 |
1 |
Sessions = mongoose_session_api:list_user_sessions(JID), |
28 |
1 |
Result = mongoose_graphql_session_helper:format_sessions(Sessions), |
29 |
1 |
{ok, Result}. |