lib/baz_venue_adapter_open_sea/api_client.ex

defmodule BazVenueAdapterOpenSea.ApiClient do
  alias BazVenueAdapterOpenSea.Api

  @behaviour BazVenueAdapterOpenSea.ApiClientBehaviour

  @impl true
  def fetch_collection_by_slug(slug, api_key) do
    api = Application.get_env(:baz_venue_adapter_open_sea, :fetch_collection_by_slug, Api.FetchCollectionBySlug)
    api.fetch_collection_by_slug(slug, api_key)
  end

  @impl true
  def fetch_collection_asset_page_by_slug(params, api_key) do
    api = Application.get_env(:baz_venue_adapter_open_sea, :fetch_collection_asset_page_by_slug, Api.FetchCollectionAssetPageBySlug)
    api.fetch_collection_asset_page_by_slug(params, api_key)
  end

  @impl true
  def fetch_collection_event_page_by_slug(params, api_key) do
    api = Application.get_env(:baz_venue_adapter_open_sea, :fetch_collection_event_page_by_slug, Api.FetchCollectionEventPageBySlug)
    api.fetch_collection_event_page_by_slug(params, api_key)
  end
end