./ct_report/coverage/mongoose_client_api_rooms_config.COVER.html

1 -module(mongoose_client_api_rooms_config).
2 -behaviour(cowboy_rest).
3
4 -export([trails/0]).
5
6 -export([init/2]).
7 -export([content_types_provided/2]).
8 -export([content_types_accepted/2]).
9 -export([is_authorized/2]).
10 -export([allowed_methods/2]).
11 -export([resource_exists/2]).
12
13 -export([from_json/2]).
14
15 -ignore_xref([from_json/2, trails/0]).
16
17 -include("mongoose.hrl").
18 -include("jlib.hrl").
19 -include("mongoose_rsm.hrl").
20 -include_lib("exml/include/exml.hrl").
21
22 trails() ->
23 83 mongoose_client_api_rooms_config_doc:trails().
24
25 init(Req, Opts) ->
26 3 mongoose_client_api:init(Req, Opts).
27
28 is_authorized(Req, State) ->
29 3 mongoose_client_api:is_authorized(Req, State).
30
31 content_types_provided(Req, State) ->
32 3 mongoose_client_api_rooms:content_types_provided(Req, State).
33
34 content_types_accepted(Req, State) ->
35 3 mongoose_client_api_rooms:content_types_accepted(Req, State).
36
37 allowed_methods(Req, State) ->
38 3 {[<<"OPTIONS">>, <<"PUT">>], Req, State}.
39
40 resource_exists(Req, State) ->
41 3 mongoose_client_api_rooms:resource_exists(Req, State).
42
43 from_json(Req, State = #{was_replied := true}) ->
44
:-(
{true, Req, State};
45 from_json(Req, State) ->
46 3 Method = cowboy_req:method(Req),
47 3 {ok, Body, Req2} = cowboy_req:read_body(Req),
48 3 case mongoose_client_api:json_to_map(Body) of
49 {ok, #{<<"name">> := N, <<"subject">> := S} = JSONData} when is_binary(N), is_binary(S) ->
50 3 handle_request(Method, JSONData, Req2, State);
51 _ ->
52
:-(
{false, Req, State}
53 end.
54
55 handle_request(Method, JSONData, Req, State) ->
56 3 case handle_request_by_method(Method, JSONData, Req, State) of
57 {ok, _} ->
58 2 {true, Req, State};
59 {not_allowed, _} ->
60 1 mongoose_client_api:forbidden_request(Req, State);
61 {_, _} ->
62
:-(
{false, Req, State}
63 end.
64
65 handle_request_by_method(<<"PUT">>,
66 #{<<"name">> := RoomName, <<"subject">> := Subject},
67 Req, State) ->
68 3 mongoose_client_api_rooms:assert_room_id_set(Req, State),
69 3 #{jid := UserJID, room := #{jid := RoomJID}} = State,
70 3 mod_muc_light_api:change_room_config(RoomJID, UserJID, RoomName, Subject).
Line Hits Source