MishkaGervaz.Table.Web.DataLoader.HookRunner (MishkaGervaz v0.0.1-alpha.2)

Copy Markdown View Source

Executes hooks during data loading.

Overridable Functions

  • run_hook/3 - Run a hook by name with arguments
  • apply_hook_result/2 - Apply hook result to query

User Override

defmodule MyApp.Table.DataLoader.HookRunner do
  use MishkaGervaz.Table.Web.DataLoader.HookRunner

  def run_hook(hooks, hook_name, args) do
    # Add logging
    Logger.debug("Running hook: #{hook_name}")
    result = super(hooks, hook_name, args)
    Logger.debug("Hook result: #{inspect(result)}")
    result
  end
end

See MishkaGervaz.Table.Web.DataLoader, MishkaGervaz.Table.Web.DataLoader.Helpers, MishkaGervaz.Table.Dsl.Hooks (where hooks are declared), MishkaGervaz.Table.Entities.ActionHook (the per-action hook entity), and the sibling sub-builders QueryBuilder, FilterParser, PaginationHandler, TenantResolver, RelationLoader.