lib/http/request.ex

defmodule BinanceHttp.Http.Request do

  @api_token_auth_types [:trade, :margin, :user_data, :user_stream, :market_data]
  @api_token Application.compile_env(:binance_http, :api_key)

  def build_body(params, [content_type: :json]) do
    Jason.encode!(params)
  end
  def build_body(params, _) when is_binary(params), do: params
  def build_body(_, _), do: ""

  def build_headers(headers, auth, nil) when auth in @api_token_auth_types do
    build_headers(headers, auth, @api_token)
  end
  def build_headers(headers, auth, api_token) when auth in @api_token_auth_types do
    headers ++ [{"X-MBX-APIKEY", api_token}]
  end
  def build_headers(headers, _auth, _), do: headers
end