Current section

Files

Jump to
wallet_passes lib wallet_passes sync.ex
Raw

lib/wallet_passes/sync.ex

if Code.ensure_loaded?(Oban) do
defmodule WalletPasses.Sync do
@moduledoc """
Convenience functions for background pass syncing.
Optional — requires `oban` dependency.
"""
alias WalletPasses.Schema
alias WalletPasses.Sync.Worker
def sync_all do
apple_serials = Schema.list_all_apple_serial_numbers()
google_serials = Schema.list_all_google_passes() |> Enum.map(& &1.serial_number)
serial_numbers = Enum.uniq(apple_serials ++ google_serials)
%{serial_numbers: serial_numbers}
|> Worker.new()
|> Oban.insert()
end
def sync(serial_numbers) when is_list(serial_numbers) do
%{serial_numbers: serial_numbers}
|> Worker.new()
|> Oban.insert()
end
end
end