Packages

DatoCMS client with helpers for static site generators

Current section

Files

Jump to
datocms_client lib datocms transformer.ex
Raw

lib/datocms/transformer.ex

defmodule DatoCMS.Transformer do
def internalize(site, items) do
site = atomize(site)
items = atomize(items)
{:ok, item_types_by_type} =
DatoCMS.ItemTypesByType.from(site)
{:ok, items_by_type} =
DatoCMS.ItemsByType.from(items, item_types_by_type)
{:ok, items_by_type} =
DatoCMS.AddMissingSlugs.to(items_by_type, item_types_by_type)
{
:ok,
[
items_by_type: items_by_type,
item_types_by_type: item_types_by_type,
site: site
]
}
end
defp atomize(data) when is_list(data) do
Enum.map(data, &atomize/1)
end
defp atomize(data) when is_map(data) do
elem(Morphix.atomorphiform(data), 1)
end
defp atomize(data), do: data
end