Сделано подтверждение регистрации пользователей #22
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
client_put/3,
|
||||
client_delete/2,
|
||||
admin_patch/3]).
|
||||
-export([verify_user/2]).
|
||||
|
||||
%%%===================================================================
|
||||
%%% Конфигурация окружения (CT_MODE, ...)
|
||||
@@ -281,10 +282,23 @@ future_date() ->
|
||||
|
||||
-spec register_and_login(binary(), binary()) -> binary().
|
||||
register_and_login(Email, Password) ->
|
||||
% 1. Регистрируем пользователя
|
||||
Resp = client_request(post, <<"/v1/register">>, <<>>,
|
||||
jsx:encode(#{email => Email, password => Password})),
|
||||
{ok, 201, _, Body} = Resp,
|
||||
#{<<"token">> := Token} = jsx:decode(list_to_binary(Body), [return_maps]),
|
||||
#{<<"user">> := #{<<"id">> := UserId}} = jsx:decode(list_to_binary(Body), [return_maps]),
|
||||
|
||||
% 2. Получаем админский токен (используется кеширование)
|
||||
AdminToken = get_admin_token(),
|
||||
|
||||
% 3. Верифицируем пользователя
|
||||
verify_user(AdminToken, UserId),
|
||||
|
||||
% 4. Логинимся и возвращаем свежий JWT
|
||||
LoginResp = client_request(post, <<"/v1/login">>, <<>>,
|
||||
jsx:encode(#{email => Email, password => Password})),
|
||||
{ok, 200, _, LoginBody} = LoginResp,
|
||||
#{<<"token">> := Token} = jsx:decode(list_to_binary(LoginBody), [return_maps]),
|
||||
Token.
|
||||
|
||||
-spec create_calendar(binary(), map()) -> binary().
|
||||
@@ -298,6 +312,16 @@ create_event(Token, CalId, Params) ->
|
||||
#{<<"id">> := EventId} = client_post(Path, Token, Params),
|
||||
EventId.
|
||||
|
||||
%% @doc Подтверждает email пользователя, используя админский эндпоинт
|
||||
%% для получения верификационного токена и публичный /v1/verify.
|
||||
-spec verify_user(AdminToken :: binary(), UserId :: binary()) -> ok.
|
||||
verify_user(AdminToken, UserId) ->
|
||||
#{<<"token">> := Token} = admin_get(
|
||||
<<"/v1/admin/users/", UserId/binary, "/verification-token">>, AdminToken),
|
||||
{ok, 200, _, _} = client_request(post, <<"/v1/verify">>, <<>>,
|
||||
jsx:encode(#{<<"token">> => Token})),
|
||||
ok.
|
||||
|
||||
%%%===================================================================
|
||||
%%% Внутренние функции
|
||||
%%%===================================================================
|
||||
|
||||
Reference in New Issue
Block a user