|
|
- %% Vendored from hex_core v0.5.0, do not edit manually
-
- -module(r3_hex_api_release).
- -export([
- delete/3,
- get/3,
- publish/2,
- retire/4,
- unretire/3
- ]).
-
- %% @doc
- %% Gets package release.
- %%
- %% Examples:
- %%
- %% ```
- %% > r3_hex_api:get_release(<<"package">>, <<"1.0.0">>, r3_hex_core:default_config()).
- %% {ok, {200, ..., #{
- %% <<"version">> => <<"1.0.0">>,
- %% <<"meta">> => #{
- %% <<"description">> => ...,
- %% <<"licenses">> => ...,
- %% <<"links">> => ...,
- %% <<"maintainers">> => ...
- %% },
- %% ...}}}
- %% '''
- %% @end
- get(Config, Name, Version) when is_binary(Name) and is_binary(Version) and is_map(Config) ->
- Path = r3_hex_api:build_repository_path(Config, ["packages", Name, "releases", Version]),
- r3_hex_api:get(Config, Path).
-
- publish(Config, Tarball) when is_binary(Tarball) and is_map(Config) ->
- Path = r3_hex_api:build_repository_path(Config, ["publish"]),
- TarballContentType = "application/octet-stream",
- Config2 = put_header(<<"content-length">>, integer_to_binary(byte_size(Tarball)), Config),
- Body = {TarballContentType, Tarball},
- r3_hex_api:post(Config2, Path, Body).
-
- delete(Config, Name, Version) when is_binary(Name) and is_binary(Version) and is_map(Config) ->
- Path = r3_hex_api:build_repository_path(Config, ["packages", Name, "releases", Version]),
- r3_hex_api:delete(Config, Path).
-
- retire(Config, Name, Version, Params) when is_binary(Name) and is_binary(Version) and is_map(Config) ->
- Path = r3_hex_api:build_repository_path(Config, ["packages", Name, "releases", Version, "retire"]),
- r3_hex_api:post(Config, Path, Params).
-
- unretire(Config, Name, Version) when is_binary(Name) and is_binary(Version) and is_map(Config) ->
- Path = r3_hex_api:build_repository_path(Config, ["packages", Name, "releases", Version, "retire"]),
- r3_hex_api:delete(Config, Path).
-
- %%====================================================================
- %% Internal functions
- %%====================================================================
-
- put_header(Name, Value, Config) ->
- Headers = maps:get(http_headers, Config, #{}),
- Headers2 = maps:put(Name, Value, Headers),
- maps:put(http_headers, Headers2, Config).
|