Current section
Files
Jump to
Current section
Files
lib/flagsmith/sdk/schemas/trait_serializer_basic.ex
defmodule Flagsmith.API.TraitSerializerBasic do
use TypedEctoSchema
import Ecto.Changeset
alias Flagsmith.SDK.Types
@moduledoc """
Ecto schema representing a Flagsmith trait definition and helpers to cast responses
from the api.
"""
@primary_key false
typed_embedded_schema do
field(:id, :integer)
field(:trait_key, :string)
field(:trait_value, :string)
end
@spec changeset(Types.params()) :: Ecto.Changeset.t()
@spec changeset(__MODULE__.t(), Types.params()) :: Ecto.Changeset.t()
def changeset(struct \\ %__MODULE__{}, params) do
struct
|> cast(params, [:trait_value, :trait_key, :id])
|> validate_required([:trait_value, :trait_key])
end
end