Packages
ash_oban
0.8.0-rc.0
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0-rc.1
0.8.0-rc.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.6
0.2.5
0.2.4
0.2.3
0.2.3-rc.1
0.2.3-rc.0
0.2.2
0.2.1
0.2.0
0.1.14
0.1.13
0.1.12
0.1.11
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
The extension for integrating Ash resources with Oban.
Current section
Files
Jump to
Current section
Files
lib/info.ex
# SPDX-FileCopyrightText: 2023 ash_oban contributors <https://github.com/ash-project/ash_oban/graphs/contributors>
#
# SPDX-License-Identifier: MIT
defmodule AshOban.Info do
@moduledoc "Introspection for AshOban"
use Spark.InfoGenerator, extension: AshOban, sections: [:oban]
@spec pro? :: boolean
def pro? do
Application.get_env(:ash_oban, :pro?) || false
end
@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