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()?;