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