Packages

Provides basic functionalities to implement a JSON API-compliant API.

Current section

Files

Jump to
solage lib jsonapi_kit data_transform utils.ex
Raw

lib/jsonapi_kit/data_transform/utils.ex

defmodule Solage.DataTransform.Utils do
@moduledoc """
Takes the decode_formatter and encode_formatter from the application’s config
and exposes functions to decode and encode a string.
"""
@decode_formatter Application.get_env(:solage, :decode_formatter, :dasherized)
@encode_formatter Application.get_env(:solage, :encode_formatter, :dasherized)
def decode_key(key), do: process(key, @decode_formatter, :decode_key)
def encode_key(key), do: process(key, @encode_formatter, :encode_key)
defp process(key, formatter, function) do
case formatter do
:dasherized -> apply(Solage.DataTransform.Dasherized, function, [key])
module when is_atom(module) -> apply(module, function, [key])
_ -> key
end
end
end