mirror of
https://github.com/ash-project/ash_oban.git
synced 2024-09-21 13:53:12 +12:00
31 lines
953 B
Elixir
31 lines
953 B
Elixir
defmodule AshOban.Info do
|
|
@moduledoc "Introspection for AshOban"
|
|
|
|
use Spark.InfoGenerator, extension: AshOban, sections: [:oban]
|
|
@pro Application.compile_env(:ash_oban, :pro?) || false
|
|
|
|
def pro?, do: @pro
|
|
|
|
@spec oban_trigger(Ash.Resource.t() | Spark.Dsl.t(), atom) :: nil | AshOban.Trigger.t()
|
|
def oban_trigger(resource, name) do
|
|
resource
|
|
|> oban_triggers()
|
|
|> Enum.find(&(&1.name == name))
|
|
end
|
|
|
|
@spec oban_scheduled_action(Ash.Resource.t() | Spark.Dsl.t(), atom) ::
|
|
nil | AshOban.Schedule.t()
|
|
def oban_scheduled_action(resource, name) do
|
|
resource
|
|
|> oban_scheduled_actions()
|
|
|> Enum.find(&(&1.name == name))
|
|
end
|
|
|
|
@spec oban_triggers_and_scheduled_actions(Ash.Resource.t() | Spark.Dsl.t()) :: [
|
|
AshOban.Trigger.t()
|
|
| AshOban.Schedule.t()
|
|
]
|
|
def oban_triggers_and_scheduled_actions(resource) do
|
|
oban_triggers(resource) ++ oban_scheduled_actions(resource)
|
|
end
|
|
end
|