Current section

Files

Jump to
bingex lib bingex http.ex
Raw

lib/bingex/http.ex

defmodule Bingex.HTTP do
@moduledoc false
alias Bingex.HTTP.{Adapter, Request}
@spec create_request(
Request.method(),
Request.path(),
Request.params(),
Request.body()
) :: Request.t()
def create_request(method, path, params \\ [], body \\ nil) do
url = Request.build_url(path, params)
Request.new(method, url, [], body)
end
@spec create_authed_request(
Request.method(),
Request.path(),
Request.params(),
Request.body(),
api_key :: binary()
) :: Request.t()
def create_authed_request(method, path, params \\ [], body \\ nil, api_key) do
url = Request.build_url(path, params)
headers = Request.auth_headers(api_key)
Request.new(method, url, headers, body)
end
@spec create_signed_request(
Request.method(),
Request.path(),
Request.params(),
Request.body(),
api_key :: binary(),
secret_key :: binary()
) :: Request.t()
def create_signed_request(
method,
path,
params \\ [],
body \\ nil,
api_key,
secret_key
) do
url = Request.build_url(path, params, sign: secret_key)
headers = Request.auth_headers(api_key)
Request.new(method, url, headers, body)
end
def request(%Request{} = request) do
Adapter.request(request)
end
end