./ct_report/coverage/mongoose_graphql_helper.COVER.html

1 -module(mongoose_graphql_helper).
2
3 -export([check_user/2]).
4
5 -export([format_result/2, make_error/2, make_error/3, null_to_default/2]).
6
7 -include("jlib.hrl").
8 -include("mongoose_graphql_types.hrl").
9
10 -spec format_result(InResult, Context) -> OutResult when
11 InResult :: {atom(), iodata() | integer()},
12 Context :: map(),
13 OutResult :: {ok, binary() | integer()} | {error, resolver_error()}.
14 format_result(Result, Context) ->
15 97 case Result of
16 1 {ok, Val} when is_integer(Val) -> {ok, Val};
17 58 {ok, Msg} -> {ok, iolist_to_binary(Msg)};
18 38 {ErrCode, Msg} -> make_error(ErrCode, Msg, Context)
19 end.
20
21 -spec make_error({atom(), iodata()}, map()) -> {error, resolver_error()}.
22 make_error({Reason, Msg}, Context) ->
23 38 make_error(Reason, Msg, Context).
24
25 -spec make_error(atom(), iodata(), map()) -> {error, resolver_error()}.
26 make_error(Reason, Msg, Context) ->
27 79 {error, #resolver_error{reason = Reason, msg = iolist_to_binary(Msg), context = Context}}.
28
29 -spec check_user(jid:jid(), boolean()) -> {ok, mongooseim:host_type()} | {error, term()}.
30 check_user(#jid{lserver = LServer} = Jid, CheckAuth) ->
31 9 case mongoose_domain_api:get_domain_host_type(LServer) of
32 {ok, HostType} ->
33 8 check_auth(HostType, Jid, CheckAuth);
34 _ ->
35 1 {error, #{what => unknown_domain, domain => LServer}}
36 end.
37
38 check_auth(HostType, _Jid, false) ->
39 4 {ok, HostType};
40 check_auth(HostType, Jid, true) ->
41 4 case ejabberd_auth:does_user_exist(HostType, Jid, stored) of
42 true ->
43 3 {ok, HostType};
44 false ->
45 1 {error, #{what => unknown_user, jid => jid:to_binary(Jid)}}
46 end.
47
48 null_to_default(null, Default) ->
49 4 Default;
50 null_to_default(Value, _Default) ->
51 44 Value.
Line Hits Source