cpursley / walex

Postgres change events (CDC) in Elixir
MIT License
282 stars 14 forks source link

DSL for handling events #18

Closed cpursley closed 9 months ago

cpursley commented 9 months ago

Instead of:

def process(txn) do
  cond do
    insert_event?(:user_account, txn) ->
      {:ok, user_account} = event(:user_account, txn)
      IO.inspect(user_account_insert_event: user_account)
      # do something with user_account data

    update_event?(:user_account, txn) ->
      {:ok, user_account} = event(:user_account, txn)
      IO.inspect(user_account_update_event: user_account)

    # you can also specify the relation
    delete_event?("public.user_account", txn) ->
      {:ok, user_account} = event(:user_account, txn)
      IO.inspect(user_account_delete_event: user_account)

    true ->
      nil
  end
end

A DSL like this would be neat:

on_update(:user_account) do
  # code here
end
cpursley commented 9 months ago

https://github.com/cpursley/walex/releases/tag/v3.0.0