pub struct GraphQLError {
pub message: String,
pub locations: Option<Vec<GraphQLErrorLocation>>,
pub path: Option<GraphQLErrorPath>,
pub extensions: GraphQLErrorExtensions,
}Fields§
§message: String§locations: Option<Vec<GraphQLErrorLocation>>§path: Option<GraphQLErrorPath>§extensions: GraphQLErrorExtensionsImplementations§
Source§impl GraphQLError
impl GraphQLError
pub fn entity_index_and_path<'a>(&'a self) -> Option<EntityIndexAndPath<'a>>
pub fn normalize_entity_error( self, entity_index_error_map: &HashMap<&usize, Vec<GraphQLErrorPath>>, ) -> Vec<GraphQLError>
Sourcepub fn from_message_and_extensions<TMessage: Into<String>>(
message: TMessage,
extensions: GraphQLErrorExtensions,
) -> Self
pub fn from_message_and_extensions<TMessage: Into<String>>( message: TMessage, extensions: GraphQLErrorExtensions, ) -> Self
Creates a GraphQLError with the given message and extensions. Example:
use hive_router_plan_executor::response::graphql_error::GraphQLError;
use hive_router_plan_executor::response::graphql_error::GraphQLErrorExtensions;
use sonic_rs::json;
let extensions = GraphQLErrorExtensions {
code: Some("SOME_ERROR_CODE".to_string()),
service_name: None,
affected_path: None,
extensions: std::collections::HashMap::new(),
};
let error = GraphQLError::from_message_and_extensions("An error occurred", extensions);
assert_eq!(json!(error), json!({
"message": "An error occurred",
"extensions": {
"code": "SOME_ERROR_CODE"
}
}));Sourcepub fn from_message_and_code<TMessage: Into<String>, TCode: Into<String>>(
message: TMessage,
code: TCode,
) -> Self
pub fn from_message_and_code<TMessage: Into<String>, TCode: Into<String>>( message: TMessage, code: TCode, ) -> Self
Creates a GraphQLError with the given message and code in extensions. Example:
use hive_router_plan_executor::response::graphql_error::GraphQLError;
use sonic_rs::json;
let error = GraphQLError::from_message_and_code("An error occurred", "SOME_ERROR_CODE");
assert_eq!(json!(error), json!({
"message": "An error occurred",
"extensions": {
"code": "SOME_ERROR_CODE"
}
}));Sourcepub fn add_subgraph_name<TStr: Into<String>>(self, subgraph_name: TStr) -> Self
pub fn add_subgraph_name<TStr: Into<String>>(self, subgraph_name: TStr) -> Self
Adds subgraph name and error code DOWNSTREAM_SERVICE_ERROR to the extensions.
Example:
use hive_router_plan_executor::response::graphql_error::GraphQLError;
use sonic_rs::json;
let error = GraphQLError::from("An error occurred")
.add_subgraph_name("users");
assert_eq!(json!(error), json!({
"message": "An error occurred",
"extensions": {
"serviceName": "users",
"code": "DOWNSTREAM_SERVICE_ERROR"
}
}));Sourcepub fn add_affected_path<TStr: Into<String>>(self, affected_path: TStr) -> Self
pub fn add_affected_path<TStr: Into<String>>(self, affected_path: TStr) -> Self
Adds affected path to the extensions. Example:
use hive_router_plan_executor::response::graphql_error::GraphQLError;
use sonic_rs::json;
let error = GraphQLError::from("An error occurred")
.add_affected_path("user.friends[0].name");
assert_eq!(json!(error), json!({
"message": "An error occurred",
"extensions": {
"affectedPath": "user.friends[0].name"
}
}));Trait Implementations§
Source§impl Clone for GraphQLError
impl Clone for GraphQLError
Source§fn clone(&self) -> GraphQLError
fn clone(&self) -> GraphQLError
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GraphQLError
impl Debug for GraphQLError
Source§impl<'de> Deserialize<'de> for GraphQLError
impl<'de> Deserialize<'de> for GraphQLError
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&GraphQLError> for ObservedError
impl From<&GraphQLError> for ObservedError
Source§fn from(value: &GraphQLError) -> Self
fn from(value: &GraphQLError) -> Self
Converts to this type from the input type.
Source§impl From<&ValidationError> for GraphQLError
impl From<&ValidationError> for GraphQLError
Source§fn from(val: &ValidationError) -> Self
fn from(val: &ValidationError) -> Self
Converts to this type from the input type.
Source§impl From<&str> for GraphQLError
impl From<&str> for GraphQLError
Source§impl From<PlanExecutionError> for GraphQLError
impl From<PlanExecutionError> for GraphQLError
Source§fn from(val: PlanExecutionError) -> Self
fn from(val: PlanExecutionError) -> Self
Converts to this type from the input type.
Source§impl From<String> for GraphQLError
impl From<String> for GraphQLError
Auto Trait Implementations§
impl Freeze for GraphQLError
impl !RefUnwindSafe for GraphQLError
impl Send for GraphQLError
impl Sync for GraphQLError
impl Unpin for GraphQLError
impl !UnwindSafe for GraphQLError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
type Error = <Target as OctetsFrom<Source>>::Error
Source§fn try_octets_into(
self,
) -> Result<Target, <Source as OctetsInto<Target>>::Error>
fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>
Performs the conversion.
Source§fn octets_into(self) -> Target
fn octets_into(self) -> Target
Performs an infallible conversion.