Update async-graphql-warp 2
This commit is contained in:
parent
2e27f1bfbf
commit
64c1028c5f
|
@ -8,7 +8,7 @@ use warp::hyper::header::HeaderName;
|
|||
use warp::reply::Response as WarpResponse;
|
||||
use warp::{Buf, Filter, Rejection, Reply};
|
||||
|
||||
use crate::BadRequest;
|
||||
use crate::GraphQLBadRequest;
|
||||
|
||||
/// GraphQL batch request filter
|
||||
///
|
||||
|
@ -53,7 +53,7 @@ where
|
|||
opts,
|
||||
)
|
||||
.await
|
||||
.map_err(|e| warp::reject::custom(BadRequest(e)))
|
||||
.map_err(|e| warp::reject::custom(GraphQLBadRequest(e)))
|
||||
}))
|
||||
.unify()
|
||||
.map(move |res| (schema.clone(), res))
|
||||
|
@ -61,15 +61,15 @@ where
|
|||
|
||||
/// Reply for `async_graphql::BatchRequest`.
|
||||
#[derive(Debug)]
|
||||
pub struct BatchResponse(pub async_graphql::BatchResponse);
|
||||
pub struct GraphQLBatchResponse(pub async_graphql::BatchResponse);
|
||||
|
||||
impl From<async_graphql::BatchResponse> for BatchResponse {
|
||||
impl From<async_graphql::BatchResponse> for GraphQLBatchResponse {
|
||||
fn from(resp: async_graphql::BatchResponse) -> Self {
|
||||
BatchResponse(resp)
|
||||
GraphQLBatchResponse(resp)
|
||||
}
|
||||
}
|
||||
|
||||
impl Reply for BatchResponse {
|
||||
impl Reply for GraphQLBatchResponse {
|
||||
fn into_response(self) -> WarpResponse {
|
||||
let mut resp = warp::reply::with_header(
|
||||
warp::reply::json(&self.0),
|
||||
|
|
|
@ -12,9 +12,9 @@ use warp::Reply;
|
|||
/// It's a wrapper of `async_graphql::ParseRequestError`. It is also a `Reply` - by default it just
|
||||
/// returns a response containing the error message in plain text.
|
||||
#[derive(Debug)]
|
||||
pub struct BadRequest(pub ParseRequestError);
|
||||
pub struct GraphQLBadRequest(pub ParseRequestError);
|
||||
|
||||
impl BadRequest {
|
||||
impl GraphQLBadRequest {
|
||||
/// Get the appropriate status code of the error.
|
||||
#[must_use]
|
||||
pub fn status(&self) -> StatusCode {
|
||||
|
@ -25,21 +25,21 @@ impl BadRequest {
|
|||
}
|
||||
}
|
||||
|
||||
impl Display for BadRequest {
|
||||
impl Display for GraphQLBadRequest {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
|
||||
self.0.fmt(f)
|
||||
}
|
||||
}
|
||||
|
||||
impl Error for BadRequest {
|
||||
impl Error for GraphQLBadRequest {
|
||||
fn source(&self) -> Option<&(dyn Error + 'static)> {
|
||||
Some(&self.0)
|
||||
}
|
||||
}
|
||||
|
||||
impl Reject for BadRequest {}
|
||||
impl Reject for GraphQLBadRequest {}
|
||||
|
||||
impl Reply for BadRequest {
|
||||
impl Reply for GraphQLBadRequest {
|
||||
fn into_response(self) -> Response<Body> {
|
||||
Response::builder()
|
||||
.status(self.status())
|
||||
|
@ -48,13 +48,14 @@ impl Reply for BadRequest {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<ParseRequestError> for BadRequest {
|
||||
impl From<ParseRequestError> for GraphQLBadRequest {
|
||||
fn from(e: ParseRequestError) -> Self {
|
||||
Self(e)
|
||||
}
|
||||
}
|
||||
impl From<BadRequest> for ParseRequestError {
|
||||
fn from(e: BadRequest) -> Self {
|
||||
|
||||
impl From<GraphQLBadRequest> for ParseRequestError {
|
||||
fn from(e: GraphQLBadRequest) -> Self {
|
||||
e.0
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ mod error;
|
|||
mod request;
|
||||
mod subscription;
|
||||
|
||||
pub use batch_request::{graphql_batch, graphql_batch_opts, BatchResponse};
|
||||
pub use error::BadRequest;
|
||||
pub use request::{graphql, graphql_opts, Response};
|
||||
pub use batch_request::{graphql_batch, graphql_batch_opts, GraphQLBatchResponse};
|
||||
pub use error::GraphQLBadRequest;
|
||||
pub use request::{graphql, graphql_opts, GraphQLResponse};
|
||||
pub use subscription::{graphql_protocol, graphql_subscription, GraphQLWebSocket};
|
||||
|
|
|
@ -3,7 +3,7 @@ use async_graphql::{BatchRequest, ObjectType, Request, Schema, SubscriptionType}
|
|||
use warp::reply::Response as WarpResponse;
|
||||
use warp::{Filter, Rejection, Reply};
|
||||
|
||||
use crate::{graphql_batch_opts, BadRequest, BatchResponse};
|
||||
use crate::{graphql_batch_opts, GraphQLBadRequest, GraphQLBatchResponse};
|
||||
|
||||
/// GraphQL request filter
|
||||
///
|
||||
|
@ -35,7 +35,7 @@ use crate::{graphql_batch_opts, BadRequest, BatchResponse};
|
|||
/// let schema = Schema::new(QueryRoot, EmptyMutation, EmptySubscription);
|
||||
/// let filter = async_graphql_warp::graphql(schema)
|
||||
/// .and_then(|(schema, request): (MySchema, async_graphql::Request)| async move {
|
||||
/// Ok::<_, Infallible>(async_graphql_warp::Response::from(schema.execute(request).await))
|
||||
/// Ok::<_, Infallible>(async_graphql_warp::GraphQLResponse::from(schema.execute(request).await))
|
||||
/// });
|
||||
/// warp::serve(filter).run(([0, 0, 0, 0], 8000)).await;
|
||||
/// });
|
||||
|
@ -72,23 +72,23 @@ where
|
|||
schema,
|
||||
batch
|
||||
.into_single()
|
||||
.map_err(|e| warp::reject::custom(BadRequest(e)))?,
|
||||
.map_err(|e| warp::reject::custom(GraphQLBadRequest(e)))?,
|
||||
))
|
||||
})
|
||||
}
|
||||
|
||||
/// Reply for `async_graphql::Request`.
|
||||
#[derive(Debug)]
|
||||
pub struct Response(pub async_graphql::Response);
|
||||
pub struct GraphQLResponse(pub async_graphql::Response);
|
||||
|
||||
impl From<async_graphql::Response> for Response {
|
||||
impl From<async_graphql::Response> for GraphQLResponse {
|
||||
fn from(resp: async_graphql::Response) -> Self {
|
||||
Response(resp)
|
||||
GraphQLResponse(resp)
|
||||
}
|
||||
}
|
||||
|
||||
impl Reply for Response {
|
||||
impl Reply for GraphQLResponse {
|
||||
fn into_response(self) -> WarpResponse {
|
||||
BatchResponse(self.0.into()).into_response()
|
||||
GraphQLBatchResponse(self.0.into()).into_response()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user