Skip to content

Instantly share code, notes, and snippets.

@jorgevilaca82
Created May 6, 2024 12:18
Show Gist options
  • Save jorgevilaca82/916770146581a8ec00048a2111543581 to your computer and use it in GitHub Desktop.
Save jorgevilaca82/916770146581a8ec00048a2111543581 to your computer and use it in GitHub Desktop.
defmodule ExternalUser do
use Ecto.Schema
import Ecto.Changeset
@primary_key false
embedded_schema do
field(:first_name, :string)
field(:last_name, :string)
end
@fields ~w(first_name last_name)a
def changeset(params) do
%__MODULE__{}
|> cast(params, @fields)
end
def create(params) do
ch = changeset(params)
if ch.valid? do
{:ok, apply_changes(ch)}
else
{:error, ch}
end
end
def to_profile(%{first_name: first, last_name: last}) do
%{name: "#{first} #{last}"}
end
end
data = %{"first_name" => "Jorge", "last_name" => "Vilaça"}
{:ok, user} = ExternalUser.create(data)
ExternalUser.to_profile(user)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment