Packages
dagger
0.19.2
0.21.7
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.8
0.20.7
0.20.6
0.20.5
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.11
0.19.10
0.19.9
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.19
0.18.18
0.18.17
0.18.16
0.18.15
0.18.14
0.18.13
0.18.12
0.18.11
0.18.10
0.18.9
0.18.8
0.18.7
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.9
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.2
0.0.0
retired
Dagger SDK for Elixir
Current section
Files
Jump to
Current section
Files
lib/dagger/gen/error.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.Error do
@moduledoc """
Dagger.Error
"""
use Dagger.Core.Base, kind: :object, name: "Error"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
A unique identifier for this Error.
"""
@spec id(t()) :: {:ok, Dagger.ErrorID.t()} | {:error, term()}
def id(%__MODULE__{} = error) do
query_builder =
error.query_builder |> QB.select("id")
Client.execute(error.client, query_builder)
end
@doc """
A description of the error.
"""
@spec message(t()) :: {:ok, String.t()} | {:error, term()}
def message(%__MODULE__{} = error) do
query_builder =
error.query_builder |> QB.select("message")
Client.execute(error.client, query_builder)
end
@doc """
The extensions of the error.
"""
@spec values(t()) :: {:ok, [Dagger.ErrorValue.t()]} | {:error, term()}
def values(%__MODULE__{} = error) do
query_builder =
error.query_builder |> QB.select("values") |> QB.select("id")
with {:ok, items} <- Client.execute(error.client, query_builder) do
{:ok,
for %{"id" => id} <- items do
%Dagger.ErrorValue{
query_builder:
QB.query()
|> QB.select("loadErrorValueFromID")
|> QB.put_arg("id", id),
client: error.client
}
end}
end
end
@doc """
Add a value to the error.
"""
@spec with_value(t(), String.t(), Dagger.JSON.t()) :: Dagger.Error.t()
def with_value(%__MODULE__{} = error, name, value) do
query_builder =
error.query_builder
|> QB.select("withValue")
|> QB.put_arg("name", name)
|> QB.put_arg("value", value)
%Dagger.Error{
query_builder: query_builder,
client: error.client
}
end
end
defimpl Jason.Encoder, for: Dagger.Error do
def encode(error, opts) do
{:ok, id} = Dagger.Error.id(error)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.Error do
def decode_fields_hint(_struct, _context, id) do
{:ok, Dagger.Client.load_error_from_id(Dagger.Global.dag(), id)}
end
end