pub struct EdgePreExecutionArguments { /* private fields */ }
Expand description
Arguments passed to the authorize_edge_pre_execution
hook.
Implementations§
Source§impl EdgePreExecutionArguments
impl EdgePreExecutionArguments
Sourcepub fn parent_type_name(&self) -> &str
pub fn parent_type_name(&self) -> &str
The name of the parent type of the edge.
For the following GraphQL schema:
type Query {
user(id: ID!): User @authorized(arguments: "id")
}
The parent type name is Query
.
Sourcepub fn field_name(&self) -> &str
pub fn field_name(&self) -> &str
The name of the authorized edge.
For the following GraphQL schema:
type Query {
user(id: ID!): User @authorized(arguments: "id")
}
The field name is user
.
Sourcepub fn arguments<'a, T>(&'a self) -> Result<T, Error>where
T: Deserialize<'a>,
pub fn arguments<'a, T>(&'a self) -> Result<T, Error>where
T: Deserialize<'a>,
The arguments passed to the @authorized
directive. The arguments are
serialized as a JSON object. This method will deserialize the arguments
into either serde_json::Value
or a custom struct.
For the following GraphQL schema:
type Query {
user(id: ID!): User @authorized(arguments: "id")
}
When executing a query like:
query {
user(id: "123") { id }
}
The arguments are {"id": "123"}
.
The arguments can be deserialized into a custom struct like:
#[derive(serde::Deserialize)]
struct Arguments {
id: String,
}
let arguments: Arguments = arguments.arguments()?;
Sourcepub fn metadata<'a, T>(&'a self) -> Result<T, Error>where
T: Deserialize<'a>,
pub fn metadata<'a, T>(&'a self) -> Result<T, Error>where
T: Deserialize<'a>,
The metadata passed to the @authorized
directive. The metadata is
serialized as a JSON object. This method will deserialize the metadata
into either serde_json::Value
or a custom struct.
For the following GraphQL schema:
type Query {
user(id: ID!): User @authorized(arguments: "id", metadata: { role: "admin" })
}
When executing a query like:
query {
user(id: "123") { id }
}
The metadata is {"role": "admin"}
.
The metadata can be deserialized into a custom struct like:
#[derive(serde::Deserialize)]
#[serde(untagged, rename = "snake_case")]
enum Role {
Admin,
User,
}
#[derive(serde::Deserialize)]
struct Metadata {
role: Role,
}
let arguments: Metadata = arguments.metadata()?;