2021-04-24 10:44:56 +12:00
|
|
|
defmodule AshGraphql.Resource.ManagedRelationship do
|
|
|
|
@moduledoc "Represents a managed relationship configuration on a mutation"
|
|
|
|
|
2021-05-12 04:12:28 +12:00
|
|
|
defstruct [
|
|
|
|
:argument,
|
|
|
|
:action,
|
|
|
|
:types,
|
|
|
|
:type_name,
|
|
|
|
:lookup_with_primary_key?,
|
|
|
|
:lookup_identities
|
|
|
|
]
|
2021-04-24 10:44:56 +12:00
|
|
|
|
|
|
|
@schema [
|
|
|
|
argument: [
|
|
|
|
type: :atom,
|
|
|
|
doc: "The argument for which an input object should be derived.",
|
|
|
|
required: true
|
|
|
|
],
|
|
|
|
action: [
|
|
|
|
type: :atom,
|
|
|
|
doc: "The action that accepts the argument"
|
|
|
|
],
|
2021-05-12 04:12:28 +12:00
|
|
|
lookup_with_primary_key?: [
|
|
|
|
type: :boolean,
|
|
|
|
doc: """
|
|
|
|
If the managed_relationship has `on_lookup` behavior, this option determines whether or not the primary key is provided in the input object for looking up.
|
|
|
|
"""
|
|
|
|
],
|
|
|
|
lookup_identities: [
|
|
|
|
type: {:list, :atom},
|
|
|
|
doc: """
|
2023-09-16 05:45:12 +12:00
|
|
|
Determines which identities are provided in the input object for looking up, if there is `on_lookup` behavior. Defalts to the `use_identities` option.
|
2021-05-12 04:12:28 +12:00
|
|
|
"""
|
|
|
|
],
|
2021-04-24 10:44:56 +12:00
|
|
|
type_name: [
|
|
|
|
type: :atom,
|
|
|
|
doc: """
|
|
|
|
The name of the input object that will be derived. Defaults to `<action_type>_<resource>_<argument_name>_input`
|
|
|
|
"""
|
|
|
|
],
|
|
|
|
types: [
|
|
|
|
type: :any,
|
|
|
|
doc: """
|
|
|
|
A keyword list of field names to their graphql type identifiers.
|
|
|
|
"""
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
def schema, do: @schema
|
|
|
|
end
|