Current section

Files

Jump to
json_ld lib json ld document_loader default.ex
Raw

lib/json/ld/document_loader/default.ex

defmodule JSON.LD.DocumentLoader.Default do
@behaviour JSON.LD.DocumentLoader
alias JSON.LD.DocumentLoader.RemoteDocument
def load(url, _options) do
with {:ok, res} <- http_get(url),
{:ok, data} <- Jason.decode(res.body) do
{:ok, %RemoteDocument{document: data, document_url: res.request_url}}
end
end
defp http_get(url) do
HTTPoison.get(url, [accept: "application/ld+json"], follow_redirect: true)
rescue
e -> {:error, "HTTPoison failed: #{inspect e}"}
end
end