lib/glific/providers/airtel/worker.ex

defmodule Glific.Providers.Airtel.Worker do
  @moduledoc """
  A worker to handle send message processes
  """

  use Oban.Worker,
    queue: :airtel,
    max_attempts: 2,
    priority: 0

  alias Glific.{
    Providers.Airtel.ApiClient
  }

  @doc """
  Standard perform method to use Oban worker
  """
  @impl Oban.Worker
  @spec perform(Oban.Job.t()) :: :ok | {:error, String.t()} | {:snooze, pos_integer()}
  def perform(%Oban.Job{args: %{"message" => message, "payload" => payload}} = _job) do
    # need to add validations and error cases
    ApiClient.send_message(message["organization_id"], payload)
    :ok
  end
end