From 59889d961ae78053d36038f9ba39880d771fa5bf Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Tue, 5 May 2020 11:02:03 +0200 Subject: [PATCH] Fix cri create room in rest api --- .../src/rest/rest_cowboy_cri_handler.erl | 6 ++- test/server_SUITE.erl | 37 ++++++++++++++++++- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/apps/roster/src/rest/rest_cowboy_cri_handler.erl b/apps/roster/src/rest/rest_cowboy_cri_handler.erl index 3c06dc791..a6b1e438a 100644 --- a/apps/roster/src/rest/rest_cowboy_cri_handler.erl +++ b/apps/roster/src/rest/rest_cowboy_cri_handler.erl @@ -95,11 +95,13 @@ malformed_request(Req, State) -> init_phone_header(Req, State) -> case cowboy_req:header(<<"phoneid">>, Req, undefined) of undefined -> throw({init_error, ?ERROR_MISSING_HEADER}); - PhoneHeader -> State#{phone_id => rest_main_helper:get_phone_number(PhoneHeader)} + PhoneHeader -> State#{phone_number => rest_main_helper:get_phone_number(PhoneHeader), + phone_id => PhoneHeader + } end. %% NOTE: Exposes information about DB, so it must be handled after authorization -check_profile(#{ phone_id := PhoneId}) -> +check_profile(#{ phone_number := PhoneId}) -> case rest_main_helper:get_profile_by_phone(PhoneId) of {error, _} -> throw({init_error, ""}); %% TODO: Mimicking existing response. {ok, _} -> ok diff --git a/test/server_SUITE.erl b/test/server_SUITE.erl index 55d0596b3..f36107a9f 100644 --- a/test/server_SUITE.erl +++ b/test/server_SUITE.erl @@ -21,6 +21,7 @@ , whitelist/1 , metrics/1 , rooms/1 + , create_room_cri/1 , group_csv/1 , chat_csv/1 , p2p_chat_message_get/1 @@ -40,7 +41,8 @@ groups() -> group_csv, chat_csv, p2p_chat_message_get, p2p_chat_message_get_errors, p2p_chat_message_post, p2p_chat_message_post_errors, - room_chat_message, room_chat_message_errors + room_chat_message, room_chat_message_errors, + create_room_cri ]} ]. @@ -286,6 +288,39 @@ rooms(Cfg) -> ok. +create_room_cri(_Cfg) -> + User = register_fresh_user(), + RosterId = nynja:user_roster(User), + + ct:log("Missing header parameter"), + {ok, 400, _} = + request('PostCRIRoom', #{}, [basic_auth()]), + + ct:log("Missing auth"), + {ok, 401, _} = + request('PostCRIRoom', #{phoneid => RosterId}, []), + + ct:log("Bad phone id"), + {ok, 400, _} = + request('PostCRIRoom', #{phoneid => <<"123", RosterId/binary>>}, [basic_auth()]), + + + ct:log("Succeed in creating room"), + {ok, 200, #{data := #{ room_id := RoomId}}} = + request('PostCRIRoom', #{phoneid => RosterId}, [basic_auth()]), + + ct:log("Check that room exists and has the creator as member"), + {ok, 200, #{data := [#{is_member := <<"true">>, + phone_id := RosterId}] + }} = + request('GetMembersCRIRoom', + #{phoneid => RosterId, room_id => RoomId, phone_ids => RosterId}, + [basic_auth()]), + + ok. + + + group_csv(Cfg) -> Phone = proplists:get_value(phone, Cfg, <<"000000036">>), MemberPhone = <<"001002001">>, -- GitLab