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