defmodule Microwaveprop.Workers.SolarIndexWorker do @moduledoc false use Oban.Worker, queue: :solar, max_attempts: 3 alias Microwaveprop.Weather alias Microwaveprop.Weather.SolarClient @impl Oban.Worker def perform(%Oban.Job{}) do since_date = Date.add(Date.utc_today(), -7) case SolarClient.fetch_solar_indices() do {:ok, all_records} -> all_records |> SolarClient.filter_since(since_date) |> Enum.each(&Weather.upsert_solar_index/1) :ok {:error, reason} -> {:error, reason} end end end