Packages
ash_graphql
0.28.0
1.9.4
1.9.3
1.9.2
1.9.1
1.9.0
1.8.5
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.0
1.5.1
1.5.0
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-rc.5
1.0.0-rc.4
retired
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.28.1
0.28.0
0.27.1
0.27.0
0.26.9
0.26.8
0.26.7
0.26.6
0.26.5
0.26.4
0.26.3
0.26.2
0.26.0
0.25.13
0.25.12
0.25.10
0.25.9
0.25.8
0.25.7
0.25.6
0.25.5
0.25.4
0.25.3
0.25.2
0.25.1
0.25.0
0.24.1
0.24.0
0.23.3
0.23.2
0.23.1
0.23.0
0.22.13
0.22.12
0.22.11
0.22.10
0.22.9
0.22.8
0.22.7
0.22.6
0.22.4
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
retired
0.20.5
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0-rc.3
0.20.0-rc.2
0.20.0-rc.1
0.20.0-rc.0
0.19.0
0.18.0-rc0
0.17.5
0.17.5-rc0
0.17.4
0.17.2
0.17.1
0.17.0
0.16.28
0.16.27
0.16.26
0.16.25
0.16.24
0.16.23
0.16.22
0.16.21
0.16.20
0.16.18-rc5
0.16.18-rc4
0.16.18-rc3
0.16.18-rc2
0.16.18-rc1
0.16.18-rc0
0.16.17
0.16.16
0.16.15
0.16.14
0.16.13
0.16.12
0.16.11
0.16.10
0.16.9
0.16.8
0.16.7
0.16.6
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.10
0.15.9
0.15.8
0.15.7
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.1
0.14.0
0.13.1
0.13.0
0.12.5
0.12.4
0.12.3
0.12.1
0.12.0
0.10.0
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.0
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.3
0.1.2
The extension for building GraphQL APIs with Ash
Current section
Files
Jump to
Current section
Files
lib/error.ex
defprotocol AshGraphql.Error do
def to_error(exception)
end
defimpl AshGraphql.Error, for: Ash.Error.Changes.InvalidChanges do
def to_error(error) do
%{
message: error.message,
short_message: error.message,
vars: Map.new(error.vars),
code: Ash.ErrorKind.code(error),
fields: List.wrap(error.fields)
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Query.InvalidQuery do
def to_error(error) do
%{
message: error.message,
short_message: error.message,
vars: Map.new(error.vars),
code: Ash.ErrorKind.code(error),
fields: [error.field]
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Page.InvalidKeyset do
def to_error(error) do
%{
message: "Invalid value provided as a keyset for %{key}: %{value}",
short_message: "invalid keyset",
vars: Map.merge(Map.new(error.vars), %{value: inspect(error.value), key: error.key}),
code: Ash.ErrorKind.code(error),
fields: List.wrap(Map.get(error, :key))
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Changes.InvalidAttribute do
def to_error(error) do
%{
message: error.message,
short_message: error.message,
vars: Map.new(error.vars),
code: Ash.ErrorKind.code(error),
fields: [error.field]
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Changes.InvalidArgument do
def to_error(error) do
%{
message: error.message,
code: Ash.ErrorKind.code(error),
short_message: error.message,
vars: Map.new(error.vars),
fields: [error.field]
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Query.InvalidArgument do
def to_error(error) do
%{
message: error.message,
code: Ash.ErrorKind.code(error),
short_message: error.message,
vars: Map.new(error.vars),
fields: [error.field]
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Changes.Required do
def to_error(error) do
%{
message: "is required",
short_message: "is required",
code: Ash.ErrorKind.code(error),
vars: error.vars,
fields: [error.field]
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Query.NotFound do
def to_error(error) do
%{
message: "could not be found",
short_message: "could not be found",
fields: Map.keys(error.primary_key || %{}),
vars: error.vars,
code: Ash.ErrorKind.code(error)
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Query.Required do
def to_error(error) do
%{
message: "is required",
short_message: "is required",
vars: error.vars,
code: Ash.ErrorKind.code(error),
fields: [error.field]
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Forbidden.Policy do
def to_error(error) do
message =
if Application.get_env(:ash_graphql, :policies)[:show_policy_breakdowns?] ||
false do
Ash.Error.Forbidden.Policy.report(error, help_text?: false)
else
"forbidden"
end
%{
message: message,
short_message: "forbidden",
vars: Map.new(error.vars),
code: "forbidden",
fields: []
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Forbidden.ForbiddenField do
def to_error(_error) do
%{
message: "forbidden field",
short_message: "forbidden field",
vars: %{},
code: "forbidden_field",
fields: []
}
end
end
defimpl AshGraphql.Error, for: Ash.Error.Invalid.InvalidPrimaryKey do
def to_error(error) do
%{
message: "invalid primary key provided",
short_message: "invalid primary key provided",
fields: [],
vars: Map.new(error.vars),
code: Ash.ErrorKind.code(error)
}
end
end