Skip to main content

lib/ex_sql/ecto/error.ex

defmodule ExSQL.Ecto.Error do
  @moduledoc false

  defexception [:message, :statement]

  @type t :: %__MODULE__{
          message: String.t(),
          statement: String.t() | nil
        }

  def from_exsql(%ExSQL.Error{} = error, statement) do
    %__MODULE__{message: error.message, statement: statement}
  end

  @impl true
  def message(%__MODULE__{message: message, statement: nil}), do: message

  def message(%__MODULE__{message: message, statement: statement}) do
    "#{message}\n#{statement}"
  end
end