defmodule Craftgate do
@version Mix.Project.config()[:version]
@moduledoc """
Elixir client for Craftgate, the one-stop shop payment gateway
"""
@doc """
Returns the current project version
"""
@spec version() :: binary()
def version(), do: @version
@doc """
Returns the current client version
"""
@spec client_version() :: binary()
def client_version(), do: "craftgate-elixir-client:" <> version()
@doc """
Convenience method to access `Craftgate.Adapter.FileReportingAdapter`
"""
@spec file_reporting() :: Craftgate.Adapter.FileReportingAdapter
def file_reporting(), do: Craftgate.Adapter.FileReportingAdapter
@doc """
Convenience method to access `Craftgate.Adapter.FraudAdapter`
"""
@spec fraud() :: Craftgate.Adapter.FraudAdapter
def fraud(), do: Craftgate.Adapter.FraudAdapter
@doc """
Convenience method to access `Craftgate.Adapter.HookAdapter`
"""
@spec hook() :: Craftgate.Adapter.HookAdapter
def hook(), do: Craftgate.Adapter.HookAdapter
@doc """
Convenience method to access `Craftgate.Adapter.InstallmentAdapter`
"""
@spec installment() :: Craftgate.Adapter.InstallmentAdapter
def installment(), do: Craftgate.Adapter.InstallmentAdapter
@doc """
Convenience method to access `Craftgate.Adapter.OnboardingAdapter`
"""
@spec onboarding() :: Craftgate.Adapter.OnboardingAdapter
def onboarding(), do: Craftgate.Adapter.OnboardingAdapter
@doc """
Convenience method to access `Craftgate.Adapter.PayByLinkAdapter`
"""
@spec pay_by_link() :: Craftgate.Adapter.PayByLinkAdapter
def pay_by_link(), do: Craftgate.Adapter.PayByLinkAdapter
@doc """
Convenience method to access `Craftgate.Adapter.PaymentAdapter`
"""
@spec payment() :: Craftgate.Adapter.PaymentAdapter
def payment(), do: Craftgate.Adapter.PaymentAdapter
@doc """
Convenience method to access `Craftgate.Adapter.PaymentReportingAdapter`
"""
@spec payment_reporting() :: Craftgate.Adapter.PaymentReportingAdapter
def payment_reporting(), do: Craftgate.Adapter.PaymentReportingAdapter
@doc """
Convenience method to access `Craftgate.Adapter.SettlementReportingAdapter`
"""
@spec settlement_reporting() :: Craftgate.Adapter.SettlementReportingAdapter
def settlement_reporting(), do: Craftgate.Adapter.SettlementReportingAdapter
@doc """
Convenience method to access `Craftgate.Adapter.SettlementAdapter`
"""
@spec settlement() :: Craftgate.Adapter.SettlementAdapter
def settlement(), do: Craftgate.Adapter.SettlementAdapter
@doc """
Convenience method to access `Craftgate.Adapter.WalletAdapter`
"""
@spec wallet() :: Craftgate.Adapter.WalletAdapter
def wallet(), do: Craftgate.Adapter.WalletAdapter
end