Commit Graph

742 Commits

Author SHA1 Message Date
Sunli
09b0a83660 Add Context::field function. #346 2020-11-30 19:41:35 +08:00
Sunli
ad3f576fe9 Update upload.rs 2020-11-30 13:47:00 +08:00
Sunli
b115e534f3 Remove the dependency on bytes crate. 2020-11-30 13:43:17 +08:00
Sunli
1e21e29fd9 Fix the problem that the fields of the list are not merged correctly.#345 2020-11-27 10:26:23 +08:00
Sunli
60974c47dc Fix #343 2020-11-23 12:43:31 +08:00
Sunli
8370001272 Implements Cow<T> for OutputValueType. #189 2020-11-08 09:22:50 +08:00
Sunli
631ec4bba0 Update docs. 2020-11-07 21:30:40 +08:00
Sunli
ad0798e8de Add TracingConfig for each request. #337 2020-11-07 21:23:22 +08:00
Koxiaet
9d94c933ff Don't duplicate type names in parsing error message 2020-11-07 06:05:59 +00:00
Sunli
66c6823a1c Export sdl for interface to implements another interface. #322 2020-11-07 08:49:08 +08:00
Sunli
b6d48fae91 Fix the problem that the resolver_utils::resolve_container function does not call the extensions. #336 2020-11-07 08:27:50 +08:00
Sunli
54d2154a18 Clippy clean 2020-11-07 08:24:17 +08:00
Sunli
05002c68cb Add Tracing::with_parent function. #337 2020-11-07 08:22:24 +08:00
Sunli
4c6adfa07f Fixed a bug that websocket could not push data in a situation. 2020-11-06 22:20:12 +08:00
Sunli
89ab0c799f Fix the problem of scalar macro. 2020-11-03 13:50:22 +08:00
Sunli
c1794dbacb Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-11-01 11:31:59 +08:00
Sunli
82333e49b9 Remove the validation of the content-type by the receive_batch_body function, because this is of little significance. #332 2020-11-01 11:31:54 +08:00
Hargobind S. Khalsa
0f495cd627 Validate the query hash before persisting queries 2020-10-31 13:53:53 -07:00
Sunli
5097832539 Fix #327. 2020-10-28 09:39:19 +08:00
Sunli
b124382e9c Add SchemaBuilder::override_description function. 2020-10-27 10:06:10 +08:00
Sunli
0ead4d99ba Add docs 2020-10-27 09:19:00 +08:00
Koxiaet
10d900a280 Rustfmt 2020-10-26 15:14:53 +00:00
Koxiaet
686f9bcff9
Merge pull request #324 from simplificAR/master
Modify interface SDL and bump Rocket
2020-10-26 15:13:26 +00:00
Daniel Wiesenberg
efd4ee61cb
Change interface SDL to adhere to spec
When only one interface is implemented, there is no &. The & is only to combine more than one interface.
2020-10-26 14:58:36 +01:00
Sunli
770ed31508 Add use_type_description attribute for derive macros Object, Scalar and Subscription. 2020-10-26 21:34:05 +08:00
Sunli
11e82e56e4 Improve performance 2020-10-24 08:59:35 +08:00
Koxiaet
c11374b785 Fix #323 2020-10-23 17:18:37 +01:00
Olexiy Buyanskyy
aff2751d36 removed not needed namespaces 2020-10-23 13:51:09 +03:00
Olexiy Buyanskyy
d0032c731f removed not needed namespaces 2020-10-23 13:49:00 +03:00
Olexiy Buyanskyy
1ea5958d87 Fixed redundant_closure_for_method_calls
https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls
2020-10-23 11:10:00 +03:00
Sunli
055936f9ad Derive Serialize for Request and Deserialize for Response. 2020-10-23 08:26:48 +08:00
Olexiy Buyanskyy
8b5de7db6a Collected all clippy warnings and fixed 2
https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string
https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants

Please change `allow` -> `deny` ub src/lib.rs to see other warnings. I feel some of them are important
2020-10-22 09:38:35 +03:00
Sunli
c999dd26dd Fix typo 2020-10-22 10:11:47 +08:00
Sunli
8edd59ffdb Fix the problem that the Registry::create_dummy_type function may overwrite the keys of the registered type. #316 2020-10-20 19:55:10 +08:00
Sunli
776aadf169 Add entity lookup support for MergedObject.
Add some GraphQL specification constraints for all derived macros.

Use `Registry::create_dummy_type` to create a merged type.
2020-10-20 11:49:31 +08:00
Sunli
7510741311 Fix the bug that ʻExtension::prepare_request` cannot get the correct request data through the context.
Add test code for extension.
2020-10-18 11:24:16 +08:00
Koxiaet
807bad2a72 Fix macro hygiene 2020-10-16 20:21:46 +01:00
Koxiaet
68381cfc65 Make macros hygienic 2020-10-16 11:37:59 +01:00
Koxiaet
db312a372d Replace futures with futures_util 2020-10-16 07:49:22 +01:00
Koxiaet
1b38ec46e0 Reduce code duplication in container resolver 2020-10-16 07:12:21 +01:00
Koxiaet
4e562a86a7 Avoid locking extensions mutex when possible 2020-10-16 06:52:52 +01:00
Koxiaet
a48953899c Remove itertools dependency 2020-10-16 06:37:48 +01:00
Sunli
f8905ff629 Update readme 2020-10-16 09:21:16 +08:00
Koxiaet
5c47f1ec57 Require POST for GraphQL requests 2020-10-15 18:42:09 +01:00
Koxiaet
2756c2cd5b Require JSON content-type 2020-10-15 18:30:16 +01:00
Sunli
985ee939d4 Add Schema::names function. 2020-10-15 19:36:54 +08:00
Koxiaet
0683b5a6be Support GET requests in actix-web integration 2020-10-15 10:33:38 +01:00
Sunli
03b276fe7e Fix a small bug. 2020-10-15 16:45:33 +08:00
Koxiaet
725156eda4 Rustfmt 2020-10-15 07:39:53 +01:00
Koxiaet
d34ac0ba08 Make imports consistent 2020-10-15 07:38:10 +01:00
Koxiaet
6dca9e57f1 Rustfmt 2020-10-15 06:56:17 +01:00
Koxiaet
ccae2d4ef5 Clean up crate root and improve context 2020-10-15 06:55:30 +01:00
Sunli
b054f1bf9f Fix can no longer derive Union for union types with lifetimes. #311 2020-10-15 08:53:17 +08:00
Sunli
bc5cf2f2a2 Configurable case conversion. 2020-10-14 19:16:10 +08:00
Sunli
b331681fe1 2.0.2 2020-10-14 11:11:52 +08:00
Sunli
53ef84c5e3 Fix a bug in the validator. 2020-10-14 10:54:46 +08:00
Sunli
184f8b169d Update docs 2020-10-13 10:19:30 +08:00
Sunli
8b1ddcdc0b Add scalar macro. 2020-10-12 21:06:06 +08:00
Sunli
6dd9483762 Improve performance 2020-10-12 14:49:32 +08:00
Sunli
64e85b33c3 All merged objects will no longer be removed. #308 2020-10-12 11:04:01 +08:00
Sunli
b0ceb58163 Use value! instead of serde_json::json!. 2020-10-12 10:17:05 +08:00
Sunli
a575c9fe1e Add value! macro. 2020-10-12 09:28:51 +08:00
Sunli
2ca10e0ded Add parse_value and from_value funcntions. 2020-10-11 20:24:31 +08:00
Sunli
10cd868f4c Some improvements. 2020-10-10 16:28:07 +08:00
Aurelien Foucault
dff328a85c Add eq for errors 2020-10-08 15:32:37 +02:00
Sunli
299a40bc4e Update docs. 2020-10-07 13:40:03 +08:00
AurelienFT
e7b4ad8f2f
Rework guard (#296)
Rework guard #293
2020-10-06 17:16:51 +08:00
Sunli
e47360d1a2 Fix typo. #297 2020-10-04 07:49:56 +08:00
Sunli
e263c755e2 Restore the original error extension implementation. 2020-10-02 14:56:10 +08:00
sunli
8aa406575b Remove useless code. 2020-10-01 18:48:11 +08:00
Sunli
f33ab0af01 Inline ContainerType, EnumType, ScalarType to docs. 2020-10-01 10:05:16 +08:00
Sunli
19f05597e0 Merge master 2020-10-01 09:40:04 +08:00
Sunli
1e30712726 Merge branch 'master' into rework-errors 2020-10-01 09:39:47 +08:00
Sunli
e6108352b9 Merge branch 'master' into rework-errors 2020-10-01 09:07:19 +08:00
Koxiaet
b61088089b Fix compilation and tests 2020-09-30 19:40:17 +01:00
Koxiaet
ab82460b81 Merge master 2020-09-30 18:24:24 +01:00
Sunli
28cd37115f Update docs. 2020-09-30 11:55:56 +08:00
Sunli
fd4c2b193b Added Apollo persisted queries extension. #280 2020-09-30 11:37:12 +08:00
Sunli
6492629e71 Improve trait for GraphQL types. 2020-09-30 07:45:48 +08:00
Koxiaet
2ddaaaa07f Rework errors
This completely overhauls the error system used in async-graphql.
- `Error` has been renamed to `ServerError` and `FieldError` has been
renamed to just `Error`. This is because `FieldError` is by far the most
common error that users will have to use so it makes sense to use the
most obvious error name. Also, the current name didn't make sense as it
was used for things other than field errors, such as the data callback
for websockets.
- `ServerError` has been made completely opaque. Before it was an enum
of all the possible errors, but now it just contains an error message,
the locations, the path and extensions. It is a shame that we lose
information, it makes more sense as _conceptually_ GraphQL does not
provide that information. It also frees us to change the internals of
async-graphql a lot more.
- The path of errors is no longer an opaque JSON value but a regular
type, `Vec<PathSegment>`. The type duplication of `PathSegment` and
`QueryPathSegment` is unfortunate, I plan to work on this in the future.
- Now that `ServerError` is opaque, `RuleError` has been removed from
the public API, making it simpler.
- Additionally `QueryError` has been completely removed. Instead the
error messages are constructed ad-hoc; I took care to never repeat an
error message.
- Instead of constructing field-not-found errors inside the
implementations of field resolvers they now return `Option`s, where a
`None` value is representative of the field not being found.
- As an unfortunate consequence of the last change, self-referential
types based on the output of a subscription resolver can no longer be
created. This does not mean anything for users, but causes lifetime
issues in the implementation of merged objects. I fixed it with a bit of
a hack, but this'll have to be looked into further.
- `InputValueError` now has a generic parameter - it's kind of weird but
it's necessary for ergonomics. It also improves error messages.
- The `ErrorExtensions` trait has been removed. I didn't think the
`extend` method was necessary since `From` impls exist. But the
ergonomics are still there with a new trait `ExtendError`, which
is implemented for both errors and results.
- `Response` now supports serializing multiple errors. This allows for
nice things like having multiple validation errors not be awkwardly
shoved into a single error.
- When an error occurs in execution, data is sent as `null`. This is
slightly more compliant with the spec but the algorithm described in
<https://spec.graphql.org/June2018/#sec-Errors-and-Non-Nullability> has
yet to be implemented.
2020-09-29 20:06:44 +01:00
Sunli
af2e480b70 Added context for Extension. 2020-09-29 20:47:37 +08:00
Sunli
8c5d8f0324 Rework async-graphql-derive. #288 2020-09-29 16:06:10 +08:00
Sunli
884bf77087 Update docs 2020-09-28 11:15:37 +08:00
Sunli
3f654127b8 Clippy clean. 2020-09-27 19:29:23 +08:00
Sunli
4bbb30b2ae Update schema.rs 2020-09-27 19:13:12 +08:00
Sunli
bf42c4e915 Fixed variables cannot deserialize from null. #282 2020-09-27 19:10:49 +08:00
Sunli
e9efad4479 Fix the problem when generating Federation SDL. #283 2020-09-27 18:49:04 +08:00
Sunli
397650bb0d Update docs 2020-09-27 18:22:01 +08:00
Sunli
17240f1fed Add some type detection to make the defined schema conform to the GraphQL specification. #282 2020-09-27 15:35:05 +08:00
Sunli
9b4fc7d922 Make Object and Subscription macros support #cfg(...) attribute. #281 2020-09-27 10:20:20 +08:00
Sunli
39f8a4fa17 Invoke extensions for execute_schema. 2020-09-26 15:52:59 +08:00
Sunli
9333583483 Improve the error message of Tracing extension. 2020-09-26 12:35:28 +08:00
Sunli
e44cb6886f Update readme 2020-09-26 11:25:21 +08:00
Sunli
f4df7d57f8 When an error occurs in the query, the Tracing extension can output the error message. 2020-09-26 09:49:46 +08:00
Sunli
2ac69e2e29 Add StringNumber type. 2020-09-26 09:22:54 +08:00
Sunli
1cab6d0186 Remove unnecessary features for tide and warp integrations. 2020-09-26 08:35:17 +08:00
Koxiaet
38c9c718d6 Reduce code duplication in batches in actix web 2020-09-25 17:38:12 +01:00
Sunli
2c693e1245 Make uuid to optional dependent. 2020-09-25 15:40:04 +08:00
Sunli
68965e5a0c Add data_XXX methods to ResolveInfo and remove context field from ResolveInfo. #260 2020-09-25 15:26:29 +08:00
Sunli
09eea044eb Improve tracing 2020-09-25 15:01:55 +08:00
Sunli
3d749f329f
Merge pull request #275 from simplificAR/export_description
Export description with `Registry::export_sdl`
2020-09-24 09:21:47 +08:00
Koxiaet
b871be2731 Rustfmt and write ARCHITECTURE.md 2020-09-23 20:23:15 +01:00
Koxiaet
635a1a5ed7 Publicize resolver utils and move Scalar there 2020-09-23 19:50:35 +01:00
Koxiaet
7f35fbca4c Big improvements to tide integration 2020-09-23 18:30:03 +01:00
Daniel Wiesenberg
225f46d180
Run Rustfmt and Clippy 2020-09-23 15:54:33 +02:00
Daniel Wiesenberg
7b53e856e0
Export description with Registry::export_sdl 2020-09-23 15:47:04 +02:00
Sunli
e3125b2d2d Add Schema::sdl method. #191 2020-09-23 14:14:22 +08:00
Koxiaet
203ea4ad64 Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-22 20:03:33 +01:00
Koxiaet
0880be3e0b Move some validations to parser
This commit moves the single anonymous and duplicated operation name
validation rules into the parser, allowing for a nicer format to be
exposed by it. It also adds better error messages to the parser.
2020-09-22 19:59:48 +01:00
Sunli
fa10a55745 Add Request::extension method. #271 2020-09-21 15:53:07 +08:00
Sunli
0259a35782 Implement Serialize/Deserialize for MaybeUndefine<T>. 2020-09-21 15:22:45 +08:00
Sunli
37e21c54fa Add BatchRequest support for actixweb and warp integrations. 2020-09-21 14:57:33 +08:00
Sunli
559e7c41b3
Merge pull request #272 from mwilliammyers/feat/maybe-undefined
Remove Deserialize impl from MaybeUndefined
2020-09-21 07:56:47 +08:00
William Myers
90b2cfdaea
Remove Deserialize impl from MaybeUndefined
Change Serialize implementation to use the `untagged` attribute.
This handles the common case of directly serializing `MaybeUndefined`,
but deserializing into an `Option<T>`. We could add a more sophisticated
custom deserialize implementation later.
2020-09-20 13:22:51 -07:00
Sunli
e21fe02cac Make ObjectType is public. 2020-09-20 15:47:17 +08:00
Sunli
7bb67f135e Fix docs 2020-09-20 13:34:49 +08:00
Sunli
707b8e5930 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-20 13:28:25 +08:00
Sunli
5bfb992ad7 Fix enum strings in query variables are not converted to proper enums. #270 2020-09-20 13:28:18 +08:00
William Myers
d3f5c56c6d
Add more trait implementations to MaybeUndefined
Closes #267
2020-09-19 14:10:54 -07:00
Koxiaet
f873c9ac5a Warp: Replace BoxedFilter with impl Filter 2020-09-19 18:10:46 +01:00
Koxiaet
ec49d4ec56 Reexport async-graphql-parser 2020-09-19 06:14:59 +01:00
Sunli
b0690cae8b Fix compiling without features 2020-09-18 15:14:40 +08:00
Sunli
019241ac22 2.0.0-alpha.12 2020-09-18 15:05:07 +08:00
Sunli
c98b269e50 Add Upload::into_async_read with blocking 2020-09-18 14:32:00 +08:00
Sunli
322e296a24 Remove the GQL prefix of all macros. #208 2020-09-18 09:10:24 +08:00
Koxiaet
3c04411780 Remove code duplication for batch requests 2020-09-17 19:43:03 +01:00
Koxiaet
5cf527aeef Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-17 19:23:15 +01:00
Koxiaet
88be6bca61 Improve websockets 2020-09-17 19:22:54 +01:00
Sunli
acc1a6f515 Add support for batch queries. 2020-09-17 19:54:12 +08:00
Sunli
de3f0937b0 Some improvements. 2020-09-17 11:22:09 +08:00
Sunli
dc77e7f262 Update docs 2020-09-17 09:03:36 +08:00
Sunli
c3d70b0553 Add test for ErrorExtensions. 2020-09-17 08:47:41 +08:00
Koxiaet
f82322045e Document features 2020-09-15 19:32:13 +01:00
Sunli
509c92a11f Move http::websocket::create and http::websocket::create_with_initializer function to http::WebSocketStream. 2020-09-15 20:07:59 +08:00
Sunli
ba03ccf3ea Rework websocket
a
2020-09-15 11:49:07 +08:00
Sunli
059128e9c5 http::websocket::create function now returns the WebSocketStream type. 2020-09-15 11:19:00 +08:00
Sunli
d6eea10816 Remove InputObjectType and add InputValueType/OutputValueType to docs 2020-09-15 09:31:55 +08:00
Koxiaet
84be87aab6 Rustfmt 2020-09-14 20:20:15 +01:00
Koxiaet
91f059f9ee Fix compiling without features 2020-09-14 20:16:41 +01:00
Koxiaet
fbcae8aa29 Improved serialize_resp 2020-09-14 19:56:12 +01:00
Koxiaet
a86c3a86b8 Remove and feature-gate dependencies 2020-09-14 19:38:41 +01:00
Sunli
3233f3638c Implement Type for more stdlib collection types #189
Implement InputValueType/OutputValueType for HashSet<T>/BTreeSet<T>/VecDeque<T>/LinkedList<T>
Implement ScalarType for char/NonZero*/HashMap<String,T>/BTreeMap<String, T>
2020-09-14 20:06:44 +08:00
Sunli
fad20a80e9 Update README.md 2020-09-14 14:13:43 +08:00
Sunli
6e3dc9721b Improve websocket 2020-09-14 10:44:56 +08:00
Sunli
134ef7ad56 Fix the problem that the compilation fails when the compilation parameter is --no-default-features.
Update mod.rs
2020-09-14 09:54:55 +08:00
Sunli
d67a511a07 2.0.0-alpha.5 2020-09-14 09:46:22 +08:00
Sunli
bbcfade50e Improve registry 2020-09-14 08:37:15 +08:00
Sunli
ae46e91b08 Remove unnecessary memory allocation in websocket. 2020-09-14 08:25:00 +08:00
Koxiaet
d404e756bc Rework subscriptions
The main change in this commit is changing the return type of
SubscriptionType::create_stream from
Future<Result<Stream<Result<Response>>>> to just Stream<Result<Json>>. I
also allowed the returned stream to borrow from self and context.
2020-09-13 18:52:36 +01:00
Koxiaet
91ec3486ce Support !Unpin in receive_body with pin project 2020-09-13 11:49:07 +01:00
Koxiaet
863d57a4b0 Remove SimpleBroker 2020-09-13 10:47:28 +01:00
Koxiaet
f204841d1f Restructure types module 2020-09-13 10:38:19 +01:00
Koxiaet
1af9ce5b95 Remove unused idx parameter on subscription 2020-09-13 08:13:56 +01:00
Koxiaet
42c3cfc17c Improve lookahead 2020-09-13 08:02:14 +01:00
Koxiaet
55753983a9 Move websockets to http module and fix doc tests 2020-09-13 07:40:34 +01:00
Sunli
f530d01bf4 Remove all attribute macros that can be replaced by derive. 2020-09-13 11:41:15 +08:00
Koxiaet
cffed09c78 Remove Deref for ContextBase 2020-09-12 17:42:15 +01:00
Koxiaet
8796c5e1a7 Replace http::GQLRequest with Request 2020-09-12 17:07:46 +01:00
Sunli
a8e7608c9e Hide async_graphql::resolver_utils module in docs.
l:
2020-09-12 21:47:11 +08:00
Sunli
bbf784fe42 Remove async_graphql::http::StreamBody
l:
2020-09-12 21:44:34 +08:00
Sunli
3b5d387f55 Delete serde.rs 2020-09-12 21:27:14 +08:00
Koxiaet
1aa36819eb Create resolver_utils 2020-09-12 10:29:52 +01:00
Sunli
e11d8c8d87 Change MultipartOptions to a builder. 2020-09-12 07:43:50 +08:00
Sunli
20dc0cfdfc Fix a little bug. 2020-09-11 23:43:26 +08:00
Sunli
a0b55a9e43 async-graphql-tide 2.0 2020-09-11 22:17:17 +08:00
Sunli
a93b91ae2d Re-enable the test on websocket. 2020-09-11 16:41:56 +08:00
Sunli
3e01ef0be7 Fix tests 2020-09-11 16:05:21 +08:00
Sunli
faac753096 Add transports::websocket module. 2020-09-11 15:54:56 +08:00
Sunli
9cc293c8be Clippy clean 2020-09-11 10:51:20 +08:00
Sunli
553e6ffd53 Remove unnecessary Result on Schema::execute_stream function. 2020-09-11 10:47:55 +08:00
Sunli
c88747dfe4 Make all tests passed (async-graphql). 2020-09-10 19:35:48 +08:00
Sunli
d5cbbfb05f Merge changes. 2020-09-10 16:54:38 +08:00
Sunli
2f5a1ccf20 Merge branch '2.0' of github.com:async-graphql/async-graphql into 2.0 2020-09-10 16:43:24 +08:00
Sunli
7a90069cad Continue to refactor. 2020-09-10 16:39:43 +08:00
Koxiaet
c00c368c35 Move HTTP functions to HTTP module 2020-09-10 08:04:24 +01:00
Sunli
9bc837da9e Initial attempt. 2020-09-10 12:49:08 +08:00
Sunli
cacb5aa9d8 Rustfmt 2020-09-10 09:09:55 +08:00
Koxiaet
096660a676 Remove anyhow, byteorder and base64 dependencies 2020-09-09 17:34:23 +01:00
Koxiaet
a526b751d5 Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-09 17:06:36 +01:00
Koxiaet
7ad1b8cd58 Reorder dependencies and remove dependency on mime 2020-09-09 17:03:33 +01:00
Sunli
31f4dcb2f2 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-09 18:42:58 +08:00
Sunli
0d3a0f6949 Add context to ResolveInfo. #260 2020-09-09 18:42:10 +08:00
Koxiaet
b3093e92d4 Fix Tide tests 2020-09-08 11:07:32 +01:00
Koxiaet
122f8ef230 Fix tests 2020-09-08 10:19:25 +01:00
Koxiaet
7cd823ba04
Merge branch 'master' into master 2020-09-08 09:48:01 +01:00
Koxiaet
a42cc58f00 Merge branch 'master' of github.com-koxiaet:Koxiaet/async-graphql into master 2020-09-08 09:32:37 +01:00
Koxiaet
c42aa55625 Rustfmt 2020-09-08 09:30:29 +01:00
Koxiaet
ed5acdcf18 Support service parsing in async-graphql-parser
- Instead of adding a separate module `schema` like there was before,
since service parsing and executable parsing have a fair amount of
overlap I put them as two submodules `executable` and `service` in both
`parse` and `types`. Also, the grammar is unified under one `.pest`
file.
- Added const equivalents to `Value`, `Directive` etc
- Change the reexport `async_graphql::Value` from
`async_graphql_parser::types::Value` to
`async_graphql_parser::types::ConstValue` since in 99% of cases in this library
a const value is wanted instead of a value.
- Added consistent usage of executable/service instead of the ambiguous
query/schema.
- Some of the tests actually had invalid GraphQL so the new more correct
grammar made them fail, that was fixed.
- Added a `Name` newtype to refer to GraphQL names
(`[A-Za-z_][A-Za-z_0-9]*`) since they are used so frequently.
2020-09-08 09:21:27 +01:00
Sunli
5f14325ef5 Remove historical code that is no longer used. 2020-09-07 18:53:03 +08:00
Sunli
9ce0554ed3 Clippy cleanup 2020-09-06 18:59:38 +08:00
Sunli
22fb1681d5 Make all tests pass. 2020-09-06 18:53:24 +08:00
Koxiaet
9ad4e8c1a8
Merge branch 'master' into master 2020-09-06 07:20:18 +01:00
Koxiaet
3bf5f3a16c Rustfmt 2020-09-06 07:16:36 +01:00
Koxiaet
e3e58d261d Rewrite async-graphql-parser 2020-09-06 06:38:31 +01:00
Sunli
dc02466cc7 Implement Into<ID> for all integer types. 2020-09-06 12:33:57 +08:00
Sunli
d393ed260d Update docs for InputObject macro. 2020-09-03 20:20:33 +08:00
Sunli
2aca257136 Remove unnecessary memory allocation. 2020-09-02 14:27:04 +08:00
Sunli
d2bb44798a Improve subscriptions performance. 2020-09-02 10:47:18 +08:00
Sunli
2165ddbc65 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-01 19:34:05 +08:00
Sunli
59ce5fe9f2 Improve subscriptions performance for warp. 2020-09-01 19:33:35 +08:00
Sunli
d04b5b675f Fix the test code and add docs. 2020-09-01 09:10:12 +08:00
Koxiaet
945cd72869 Remove dependency on serde_derive, satisfy Clippy, improve docs 2020-08-31 19:18:02 +01:00
Sunli
b3f6e724bf Add DateTime<Local> scalar.
Fixed compile problem with `v1.48-nightly`.
2020-08-31 16:12:12 +08:00
Sunli
56550bac23 Clippy clean 2020-08-31 15:40:44 +08:00
Sunli
ea379141a6 Cargo fmt --all 2020-08-31 15:35:53 +08:00
D1plo1d
895b075c77 Added async_graphql::graphql tracing namespace 2020-08-30 21:11:43 -04:00
D1plo1d
895dbfae7c Refactored tracing extension to allow better span and event filtering and improve signal to noise 2020-08-30 21:01:53 -04:00
D1plo1d
05b2473b52 Added Default to tracing extension 2020-08-30 16:32:14 -04:00
Renat Sadykov
83261cef2a
Add the DateTime<FixedOffset> scalar 2020-08-29 23:18:57 +03:00
Sunli
80b2ff00c5 Implements Default for Schema. 2020-08-28 14:19:35 +08:00
Sunli
7fef4e3dca Merge subscriptions #243 2020-08-27 15:35:48 +08:00
Sunli
2e5c256de9 Rename SubscriptionTransport to ConnectionTransport. #240 2020-08-15 08:47:45 +08:00
Sunli
e596a27e05 Add scalar type for NaiveDateTime. #237 2020-08-14 15:28:42 +08:00
Sunli
fe336dd4d0 Fix send data with 'complete' WebSocket message. #238 2020-08-14 15:21:10 +08:00
Sunli
e8eac139b5 Update docs 2020-08-10 14:57:45 +08:00
Sunli
d280a13b70 Add derive macro GQLMergeObject. #231 2020-08-10 14:11:46 +08:00
Sunli
d7248e149f Add Default impl for MergedObject. #231 2020-08-10 10:47:30 +08:00
Sunli
dd7c64fc7a Add MergedObject type. #231 2020-08-09 15:03:10 +08:00
Midas Lambrichts
ac9996e458 3% speedup in chat run by allocating vector up front 2020-08-08 13:36:14 +02:00
Sunli
a193a8e51a Add directive @ifdef 2020-08-06 14:52:54 +08:00
Sunli
b67278eeec Add support for query execution over websocket. 2020-07-31 11:30:57 +08:00
Sunli
3d7594bac1 Removes code about streaming requests. 2020-07-31 10:10:03 +08:00
Sunli
c22ff21b96 InputValueValidator::is_valid function now returns the Result type. #221 2020-07-30 09:43:51 +08:00
Sunli
72aaf288a5 Export serde_json::Number as async_graphql::Number. 2020-07-30 09:30:57 +08:00
Sunli
3395c00603 Replace Value::Int and Value::Float with Value::Number. 2020-07-29 09:42:52 +08:00
Sunli
b8a887457d Use log crate instead of xlog because xlog still needs to be perfected. #217 2020-07-24 16:55:46 +08:00
Sunli
fcf9477fc2 Fix Federation schema throws error while using multiple Option inputs #211 2020-07-17 10:14:40 +08:00
Sunli
c7c4de94ed Replace log crate with xlog. 2020-07-15 18:05:24 +08:00
Sunli
8992b681dc Fix input validator is ignored when using variable #207 2020-07-11 10:05:30 +08:00
Sunli
1da351a059
Merge pull request #206 from D1plo1d/patch-1
Add Serialize and Deserialize to ID
2020-07-08 15:10:01 +08:00
Sunli
9510160432 Add OutputJson type #203 2020-07-08 14:44:57 +08:00
Rob Gilson
aab0bb157c
Add Serialize and Deserialize to ID
This should allow types containing IDs to be serialized (eg. for saving to a database).
2020-07-08 01:58:46 -04:00
Koxiaet
5a5257afef Document default values 2020-07-07 09:41:29 +01:00
Blaine Bublitz
6ed3909a9a Use FieldResult for data(), add data_unchecked() for panic 2020-07-06 17:39:53 -07:00
Sunli
c8409e1a00 Remove ref attribute for SimpleObject fields, and add owned attribute. 2020-06-23 14:42:57 +08:00
Sunli
6172887612 Fix typo 2020-06-22 15:59:53 +08:00
Sunli
94e0971827 Update datetime.rs 2020-06-16 23:21:05 +08:00
Jake Thompson
0a0fc03e8c
Update parsing to support more formats, this includes the JS standard format that is not compatible with the %+ time format 2020-06-16 01:46:20 +00:00
Sunli
cda4498979 Remove all datasource-related code and update the documentation. 2020-06-15 14:17:19 +08:00
Sunli
c05127bb3e Remove connection::DataSource 2020-06-15 12:06:15 +08:00
Sunli
c0f62cbf03 Update integers.rs 2020-06-15 09:26:43 +08:00
Midas Lambrichts
fb4b5f470b Added u32 as ScalarType 2020-06-14 22:13:45 +02:00
Sunli
09a6eb4944 Extension::Logger now provides more comprehensive error information. 2020-06-13 22:14:47 +08:00
Sunli
8ea34e8bcf Add Querybuilder::query_source function. #174 2020-06-13 09:09:44 +08:00
Sunli
c82a729392 Fix typo 2020-06-12 09:55:20 +08:00
Bryan Burgers
81c7683e4d Allow vars to be missing when def is nullable
Allow variables to be missing when the associated variable definition is
nullable (in which case we use `null` as the default).

This fixes queries like

```graphql
query Test($var: Int) {
    test(var: $var)
}
```

```json
{}
```

which appear to be allowed according to the GraphQL spec.
2020-06-11 10:00:47 -05:00
Sunli
538b7e0646 Add GQLInterface and GQLUnion 2020-06-11 15:08:51 +08:00
Sunli
9281fcbb5a Merge branch 'master' of github.com:async-graphql/async-graphql 2020-06-11 11:23:34 +08:00
Sunli
b605846822 Add GQLEnum, GQLInputObject, GQLSimpleObject macros. #164
use `proc_macro_derive` to solve the problem that Enum, InputObject, and SimpleObject do not support the #cfg attribute.
2020-06-11 11:23:23 +08:00
Coenen Benjamin
8d5ad9d484
Update name of scalar DateTime to DateTimeUtc (#166)
* Update name of scalar DateTime to DateTimeUtc
2020-06-09 21:18:23 +08:00