Packages

A library of convenience functions for manipulating datasets.

Current section

Files

Jump to
fitz lib parsers changeset.ex
Raw

lib/parsers/changeset.ex

defmodule Changeset do
@moduledoc """
Documentation for Fitz.Changeset.
"""
@doc """
Changeset get_changeset_errors.
Converts the changeset errors into strings
"""
def errors(changeset) do
changeset.errors
|> Enum.map(fn {k, v} -> "Parameter #{k} #{render_detail(v)}" end)
end
def put_permalink(changeset, title) do
permalink = Fitz.sluggify(title)
if !Ecto.Changeset.get_field(changeset, :permalink) do
Ecto.Changeset.put_change(changeset, :permalink, permalink)
else
changeset
end
end
def put_permalink(changeset) do
base = Ecto.Changeset.get_field(changeset, :title) || Ecto.Changeset.get_field(changeset, :name) || UUID.uuid4
permalink = Fitz.sluggify(base)
if !Ecto.Changeset.get_field(changeset, :permalink) do
Ecto.Changeset.put_change(changeset, :permalink, permalink)
else
changeset
end
end
defp render_detail({message, values}) do
Enum.reduce values, message, fn {k, v}, acc ->
String.replace(acc, "%{#{k}}", to_string(v))
end
end
defp render_detail(message) do
message
end
end