Current section

Files

Jump to
messenger_bot_store lib messenger_bot_store model user.ex
Raw

lib/messenger_bot_store/model/user.ex

defmodule MessengerBotStore.Model.User do
@moduledoc """
User Model
"""
use Ecto.Schema
import Ecto.Changeset
alias MessengerBotStore.Model.User
@allowed_attrs [
:external_id,
:app_id,
:page_id,
:current_status,
:first_name,
:last_name,
:profile_pic,
:locale,
:timezone,
:gender,
:last_ad_referral
]
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "messenger_users" do
field(:app_id, :integer)
field(:current_status, :integer)
field(:external_id, :integer)
field(:first_name, :string)
field(:gender, :string)
field(:last_ad_referral, :map)
field(:last_name, :string)
field(:locale, :string)
field(:page_id, :integer)
field(:profile_pic, :string)
field(:timezone, :integer)
timestamps()
end
@doc false
def changeset(
%User{} = user,
%{app_id: app_id, id: id, page_id: page_id} = attrs
) do
app_id = String.to_integer("#{app_id}")
page_id = String.to_integer("#{page_id}")
external_id = String.to_integer("#{id}")
attrs =
Map.merge(attrs, %{
app_id: app_id,
external_id: external_id,
page_id: page_id
})
user
|> cast(attrs, @allowed_attrs)
|> validate_required([:external_id, :app_id, :page_id])
end
def changeset(%User{} = user, attrs) do
user
|> cast(attrs, @allowed_attrs)
|> validate_required([:external_id, :app_id, :page_id])
end
end