use dynamic dispatch

This commit is contained in:
2025-04-05 02:59:27 +00:00
parent 0c5442f0cd
commit e379896512
14 changed files with 62 additions and 69 deletions

View File

@ -2,11 +2,9 @@ defmodule Memex.Pipelines.Pipeline do
@moduledoc """
Represents a chain of considerations to take to accomplish a task
"""
use Ecto.Schema
use Gettext, backend: MemexWeb.Gettext
import Ecto.Changeset
alias Ecto.{Changeset, UUID}
alias Memex.{Accounts.User, Pipelines.Steps.Step, Repo}
use Memex, :schema
alias Memex.Pipelines.Steps.Step
@derive {Phoenix.Param, key: :slug}
@derive {Jason.Encoder,
@ -19,8 +17,6 @@ defmodule Memex.Pipelines.Pipeline do
:steps,
:updated_at
]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "pipelines" do
field :slug, :string
field :description, :string
@ -61,7 +57,7 @@ defmodule Memex.Pipelines.Pipeline do
)
|> validate_required([:slug, :user_id, :visibility])
|> unique_constraint(:slug)
|> unsafe_validate_unique(:slug, Repo)
|> unsafe_validate_unique(:slug, Memex.Repo)
end
@spec update_changeset(t(), attrs :: map(), User.t()) :: changeset()
@ -75,7 +71,7 @@ defmodule Memex.Pipelines.Pipeline do
)
|> validate_required([:slug, :visibility])
|> unique_constraint(:slug)
|> unsafe_validate_unique(:slug, Repo)
|> unsafe_validate_unique(:slug, Memex.Repo)
end
defp cast_tags_string(changeset, attrs) do

View File

@ -2,10 +2,9 @@ defmodule Memex.Pipelines.Steps.Step do
@moduledoc """
Represents a step taken while executing a pipeline
"""
use Ecto.Schema
import Ecto.Changeset
alias Ecto.{Changeset, UUID}
alias Memex.{Accounts.User, Pipelines.Pipeline}
use Memex, :schema
alias Memex.Pipelines.Pipeline
@derive {Jason.Encoder,
only: [
@ -15,8 +14,6 @@ defmodule Memex.Pipelines.Steps.Step do
:inserted_at,
:updated_at
]}
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "steps" do
field :title, :string
field :content, :string

View File

@ -3,9 +3,7 @@ defmodule Memex.Pipelines.Steps do
The context for steps within a pipeline
"""
import Ecto.Query, warn: false
alias Ecto.Multi
alias Memex.{Accounts.User, Repo}
use Memex, :context
alias Memex.Pipelines.{Pipeline, Steps.Step}
@doc """