defmodule NearApi.HttpClient do
use HTTPoison.Base
def process_request_url(url) do
endpoint_url() <> url
end
def process_response_body(body) do
Jason.decode!(body)
end
def process_request_headers(headers) do
headers ++ ["Content-Type": "application/json"]
end
def api_call(payload) do
params_encoded = NearApi.HttpClient.params("query", payload) |> Jason.encode!()
case NearApi.HttpClient.post("/", params_encoded) do
{:ok, response} -> response.body
error -> error
end
end
@doc """
Wraps payload into the NEAR query structure
"""
def params(method, payload) do
%{
id: "dontcare",
jsonrpc: "2.0",
method: method,
params: payload
}
end
defp endpoint_url do
System.get_env("NEAR_NODE_URL")
end
end