./ct_report/coverage/mongoose_graphql_operations.COVER.html

1 -module(mongoose_graphql_operations).
2
3 -export([verify_operations/2]).
4
5 -include_lib("graphql/src/graphql_schema.hrl").
6 -include_lib("graphql/src/graphql_internal.hrl").
7
8 verify_operations(Ctx, #document{definitions = Definitions}) ->
9 1055 Method = maps:get(method, Ctx, undefined),
10 1055 [verify_op_type(Method, op_type(Ty)) || #op{id = Id, ty = Ty} <- Definitions,
11 1055 is_requested_op(Ctx, Id)],
12 1055 ok.
13
14 verify_op_type(Method, OpType) ->
15 1055 case is_supported(Method, OpType) of
16 true ->
17 1055 ok;
18 false ->
19
:-(
Error = {unsupported_operation, Method, OpType},
20
:-(
graphql_err:abort([], verify, Error)
21 end.
22
23
:-(
is_supported(Method, subscription) -> Method =:= sse;
24 1055 is_supported(Method, _) -> Method =/= sse.
25
26 1055 is_requested_op(#{operation_name := undefined}, _) -> true;
27
:-(
is_requested_op(#{operation_name := OpName}, {name, _, Name}) -> OpName =:= Name.
28
29 15 op_type(undefined) -> query;
30 1040 op_type({OpType, _}) -> OpType.
Line Hits Source