%% Vendored from hex_core v0.6.8, do not edit manually -module(r3_hex_api_user). -export([ create/4, get/2, me/1, reset_password/2 ]). %% @doc %% Gets the authenticated user. %% %% Examples: %% %% ``` %% > r3_hex_api_user:me(r3_hex_core:default_config()). %% {ok, {200, ..., #{ %% <<"email">> => <<"user@example.com">>, %% <<"full_name">> => <<"John Doe">>, %% <<"handles">> => #{...}, %% <<"inserted_at">> => <<"2014-04-21T17:20:12Z">>, %% <<"level">> => <<"full">>, %% <<"updated_at">> => <<"2019-08-04T19:28:05Z">>, %% <<"url">> => <<"https://hex.pm/api/users/user">>, %% <<"username">> => <<"user">> %% }}} %% ''' %% @end -spec me(r3_hex_core:config()) -> r3_hex_api:response(). me(Config) when is_map(Config) -> r3_hex_api:get(Config, ["users", "me"]). %% @doc %% Creates a new user account. %% %% Examples: %% %% ``` %% > r3_hex_api_user:create(r3_hex_core:default_config(), <<"user">>, <<"hunter42">>, <<"user@example.com">>). %% {ok, {201, ..., #{ %% <<"email">> => <<"user@example.com">>, %% <<"full_name">> => <<"John Doe">>, %% <<"handles">> => #{...}, %% <<"inserted_at">> => <<"2014-04-21T17:20:12Z">>, %% <<"level">> => <<"full">>, %% <<"updated_at">> => <<"2019-08-04T19:28:05Z">>, %% <<"url">> => <<"https://hex.pm/api/users/user">>, %% <<"username">> => <<"user">> %% }}} %% ''' %% @end -spec create(r3_hex_core:config(), binary(), binary(), binary()) -> r3_hex_api:response(). create(Config, Username, Password, Email) when is_map(Config) and is_binary(Username) and is_binary(Password) and is_binary(Email) -> Params = #{ <<"username">> => Username, <<"password">> => Password, <<"email">> => Email }, r3_hex_api:post(Config, ["users"], Params). %% @doc %% Resets the user's password. %% %% Examples: %% %% ``` %% > r3_hex_api_user:reset_password(r3_hex_core:default_config(), <<"user">>). %% {ok, {204, ..., nil}} %% ''' %% @end -spec reset_password(r3_hex_core:config(), binary()) -> r3_hex_api:response(). reset_password(Config, Username) when is_map(Config) and is_binary(Username) -> r3_hex_api:post(Config, ["users", Username, "reset"], #{}). %% @doc %% Gets a user. %% %% Examples: %% %% ``` %% > r3_hex_api_user:get(r3_hex_core:default_config()). %% {ok, {200, ..., #{ %% <<"email">> => <<"user@example.com">>, %% <<"full_name">> => <<"John Doe">>, %% <<"handles">> => #{...}, %% <<"inserted_at">> => <<"2014-04-21T17:20:12Z">>, %% <<"level">> => <<"full">>, %% <<"updated_at">> => <<"2019-08-04T19:28:05Z">>, %% <<"url">> => <<"https://hex.pm/api/users/user">>, %% <<"username">> => <<"user">> %% }}} %% ''' %% @end -spec get(r3_hex_core:config(), binary()) -> r3_hex_api:response(). get(Config, Username) when is_map(Config) and is_binary(Username) -> r3_hex_api:get(Config, ["users", Username]).