lib/ex_szamlazz_hu.ex

defmodule ExSzamlazzHu do
  alias ExSzamlazzHu.CreateInvoice

  @moduledoc """
  A very thin wrapper for the Szamlazz.hu API.
  """
  @moduledoc since: "0.1.0"

  @doc """
  Calls the Szamlazz.hu API [to create an invoice](https://docs.szamlazz.hu/#generating-invoices).

  Returns `%ExSzamlazzHu.CreateInvoice.Result{}` struct when a call to the Szamlazz.hu API was made.
  """
  @doc since: "0.1.0"
  @spec create_invoice(params :: map()) :: {:ok, CreateInvoice.Result.t()} | {:error, :cannot_save_temporary_file} | {:error, any()}
  def create_invoice(params), do: CreateInvoice.run(params)

  @doc false
  def reverse_invoice(_params), do: {:error, :not_implemented}

  @doc false
  def register_credit_entry(_params), do: {:error, :not_implemented}

  @doc false
  def query_invoice_pdf(_params), do: {:error, :not_implemented}

  @doc false
  def query_invoice_xml(_params), do: {:error, :not_implemented}

  @doc false
  def delete_pro_forma_invoice(_params), do: {:error, :not_implemented}

  @doc false
  def create_receipt(_params), do: {:error, :not_implemented}

  @doc false
  def reverse_receipt(_params), do: {:error, :not_implemented}

  @doc false
  def query_receipt(_params), do: {:error, :not_implemented}

  @doc false
  def send_receipt(_params), do: {:error, :not_implemented}

  @doc false
  def query_taxpayers(_params), do: {:error, :not_implemented}

  @doc false
  def create_supplier_account(_params), do: {:error, :not_implemented}
end