Current section

Files

Jump to
logflare_ex lib batched_event.ex
Raw

lib/batched_event.ex

defmodule LogflareEx.BatchedEvent do
@moduledoc false
use TypedEctoSchema
import Ecto.Changeset
typed_schema "logflare_events" do
field(:source_token, :string)
field(:source_name, :string)
field(:body, :map)
field(:created_at, :naive_datetime_usec, enforce: true)
field(:inflight_at, :naive_datetime_usec)
end
def changeset(struct, params) do
struct
|> cast(params, [:body, :source_token, :source_name, :inflight_at])
|> validate_required([:body])
|> then(fn change ->
missing_fields = Enum.filter([:source_name, :source_token], &field_missing?(change, &1))
if length(missing_fields) > 1 do
change
|> add_error(:source_name, "either source token or name must be provided")
|> add_error(:source_token, "either source token or name must be provided")
else
change
end
end)
end
end