Current section

Files

Jump to
postgrex_pubsub_multi_tenant lib broadcast_id_migration.ex
Raw

lib/broadcast_id_migration.ex

defmodule PostgrexPubsubMultiTenant.BroadcastIdMigration do
@moduledoc """
A macro for applying mutation broadcast triggers to tables
"""
defmacro __using__(opts) do
table_name =
opts
|> Map.new()
|> Map.get(:table_name)
prefix =
opts
|> Map.new()
|> Map.get(:prefix)
columns =
opts
|> Map.new()
|> Map.get(:columns)
quote do
use Ecto.Migration
def up do
PostgrexPubsubMultiTenant.IdStrategy.broadcast_mutation_for_table(unquote(table_name), unquote(prefix), unquote(columns))
end
def down do
PostgrexPubsubMultiTenant.IdStrategy.delete_broadcast_trigger_for_table(unquote(table_name), unquote(prefix))
end
end
end
end