浏览代码

Undo r3_hex_api changes in favor of erlang/rebar3#2213

(cherry picked from commit 08eb611a3d)
pull/2195/head
Michael Klishin 5 年前
父节点
当前提交
2f4521e8a3
找不到此签名对应的密钥 GPG 密钥 ID: E80EDCFA0CDB21EE
共有 1 个文件被更改,包括 12 次插入26 次删除
  1. +12
    -26
      src/r3_hex_api.erl

+ 12
- 26
src/r3_hex_api.erl 查看文件

@ -16,8 +16,6 @@
]).
-define(ERL_CONTENT_TYPE, <<"application/vnd.hex+erlang">>).
-import(rebar_utils, [to_list/1]).
get(Config, Path) ->
request(Config, get, Path, undefined).
@ -30,24 +28,26 @@ put(Config, Path, Body) ->
delete(Config, Path) ->
request(Config, delete, Path, undefined).
%% OTP 21+
-ifdef (OTP_RELEASE).
encode_query_string(List0) ->
%% uri_string:compose_query/1 only accepts proplists where values are lists
Pairs = lists:map(fun ({K, V}) -> {to_list(K), to_list(V)}
end, List0),
list_to_binary(uri_string:compose_query(Pairs)).
-else.
-if(?OTP_RELEASE >= 23).
-compile({nowarn_deprecated_function, [{http_uri, encode, 1}]}).
-endif.
-endif.
%% @private
encode_query_string(List) ->
QueryString =
join("&",
lists:map(fun ({K, V}) -> to_list(K) ++ "=" ++ to_list(V)
lists:map(fun
({K, V}) when is_atom(V) ->
atom_to_list(K) ++ "=" ++ atom_to_list(V);
({K, V}) when is_binary(V) ->
atom_to_list(K) ++ "=" ++ binary_to_list(V);
({K, V}) when is_integer(V) ->
atom_to_list(K) ++ "=" ++ integer_to_list(V)
end, List)),
Encoded = http_uri:encode(QueryString),
list_to_binary(Encoded).
-endif.
%% @private
build_repository_path(#{api_repository := Repo}, Path) when is_binary(Repo) ->
@ -61,20 +61,9 @@ build_organization_path(#{api_organization := Org}, Path) when is_binary(Org) ->
build_organization_path(#{api_organization := undefined}, Path) ->
Path.
%% OTP 21+
-ifdef (OTP_RELEASE).
%% @private
join_path_segments(Segments) ->
Concatenated = join(<<"/">>, Segments),
%% uri_string:recompose/1 accepts path segments as a list,
%% both strings and binaries
list_to_binary(uri_string:recompose(#{path => Concatenated})).
-else.
%% @private
join_path_segments(Segments) ->
erlang:iolist_to_binary(join(<<"/">>, lists:map(fun encode/1, Segments))).
-endif.
%%====================================================================
%% Internal functions
@ -103,13 +92,10 @@ request(Config, Method, Path, Body) when is_binary(Path) and is_map(Config) ->
Other
end.
%% OTP < 21
-ifndef (OTP_RELEASE).
encode(Binary) when is_binary(Binary) ->
encode(binary_to_list(Binary));
encode(String) when is_list(String) ->
http_uri:encode(String).
-endif.
build_url(Path, #{api_url := URI}) ->
<<URI/binary, "/", Path/binary>>.

正在加载...
取消
保存