Current section
Files
Jump to
Current section
Files
lib/jsonapi_helpers.ex
defmodule JsonapiHelpers do
alias JsonapiHelpers.MapHelpers
def jsonapi_id(data) do
dig(data, ["data", "id"]) || dig(data, ["id"])
end
def jsonapi_type(data) do
dig(data, ["data", "type"]) || dig(data, ["type"])
end
def jsonapi_attributes(data) do
Map.keys(dig(data, ["data", "attributes"]) || dig(data, ["attributes"]) || %{})
end
def jsonapi_attribute_value(data, attribute) do
(dig(data, ["data", "attributes"]) || dig(data, ["attributes"]) || %{})
|> Map.get(attribute)
end
def jsonapi_relationships(data) do
(dig(data, ["data", "relationships"]) || dig(data, ["relationships"]) || %{})
|> Map.keys()
end
def jsonapi_relationship_data(data, attribute) do
dig(data, ["data", "relationships", attribute, "data"]) || dig(data, ["relationships", attribute, "data"])
end
defp dig(data, dig) do
data
|> MapHelpers.stringify_keys()
|> get_in(dig)
end
end