berrypod/lib/berrypod/providers.ex
jamey 9528700862 rename project from SimpleshopTheme to Berrypod
All modules, configs, paths, and references updated.
836 tests pass, zero warnings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 21:23:15 +00:00

28 lines
744 B
Elixir

defmodule Berrypod.Providers do
@moduledoc """
Convenience functions for working with POD providers.
"""
alias Berrypod.Products.ProviderConnection
alias Berrypod.Providers.Provider
@doc """
Tests a provider connection.
Returns `{:ok, info}` with provider-specific info (e.g., shop name, shop_id)
or `{:error, reason}` if the connection fails.
"""
def test_connection(%ProviderConnection{} = conn) do
case Provider.for_connection(conn) do
{:ok, provider} -> provider.test_connection(conn)
{:error, :not_implemented} -> {:error, :provider_not_implemented}
error -> error
end
end
@doc """
Returns the provider module for a given type.
"""
defdelegate for_type(type), to: Provider
end