Vladimir Razuvaev
b17b1c3336
Merge remote-tracking branch 'origin/master'
2017-10-14 00:45:55 +07:00
Vladimir Razuvaev
1487741f37
Preserve description for custom scalars ( #181 )
2017-10-14 00:45:23 +07:00
Gabriel Goncalves
440d38d3bc
Creating test to Language\Token
2017-10-04 12:06:25 -03:00
Vladimir Razuvaev
f7248dec76
Ability to override internal types (using types
option of Schema class) #174
2017-09-22 23:08:51 +07:00
Vladimir Razuvaev
1e34982bda
Additional tests for variable coercion + use printSafeJson vs printSafe for input variables
2017-09-20 18:40:45 +07:00
Vladimir Razuvaev
a1e06b2e61
Account for query offset in files for errors
2017-09-20 18:36:19 +07:00
Vladimir Razuvaev
6050af4e67
Add support for directives applied on IDL & Schema
2017-09-20 17:43:06 +07:00
Vladimir Razuvaev
39f378ece7
Fixed type in tests: Testcase -> TestCase
2017-09-20 17:03:22 +07:00
Derek Lavigne
d22385cc93
Update query variable coercion to meet the rules outlined in the
...
specification.
The framework currently coerces query variables similar to the way it
treats output values, which means it attempts to coerce the value into
the field's corresponding data type regardless of the received value.
According to items 3f and 3g in section 6.1.2
(http://facebook.github.io/graphql/#sec-Validating-Requests ) of
Facebook's GraphQL specification query variables should be coerced
according to their type's input coercion rules laid out in section
3.1.1 (http://facebook.github.io/graphql/#sec-Scalars ). If the value
can not be coerced into the correct type according the the input
coercion rules for the type a query error should be thrown. This
ensures that client provided query variables were of the correct format
and will be a valid format and type by the time they are passed into an
implementing resolver.
This patch fixes the above issue by updating the way query variables
are sanitized during the process of parsing the query. It directly
follows the rules for scalar input coercion laid out by the
specification and throws query errors when a value that cannot be
coerced to the correct type is given. Tests for isValidPHPValue will
also be updated to ensure that it is doing the correct type checks on
Values::isValidPHPValue for the given type and value provided. A new
test case will also be added to test Values::getVariableValues and make
sure it is also enforcing the scalar input coercion rules and throwing
errors for invalid values.
2017-09-18 12:14:09 -04:00
Vladimir Razuvaev
6ff427d241
Server: do not raise an error when variables are passed as empty string ( #156 )
2017-08-30 23:26:45 +07:00
Vladimir Razuvaev
d95fb461ee
Server: fixed constructor screwed during rebasing + restored tests for the server
2017-08-21 01:18:23 +07:00
Vladimir Razuvaev
90602b31ba
Added link to docs for generic error about unique type instance ( #149 )
2017-08-20 22:28:17 +07:00
Vladimir Razuvaev
085516bdda
Moved GraphQL\Language\AST\Node::fromArray
to GraphQL\Utils\AST::fromArray
2017-08-20 19:50:44 +07:00
Vladimir Razuvaev
1b4f983f3f
Improved docblock comments (suitable for reference docs generation)
2017-08-19 23:01:46 +07:00
Vladimir Razuvaev
203fddfe4e
Abstract base class for validation rules
2017-08-18 20:56:04 +07:00
Vladimir Razuvaev
9499e5ae8e
Suppressing Config deprecation warning in tests
2017-08-18 18:07:23 +07:00
Vladimir Razuvaev
83cc9132a0
Server: minor improvements
2017-08-18 02:54:35 +07:00
Vladimir Razuvaev
e52fe8c384
BuildSchema::build() now accepts DocumentNode as well
2017-08-17 20:33:36 +07:00
Vladimir Razuvaev
03629c1e3c
Refactored error formatting (debugging part)
2017-08-17 18:49:17 +07:00
Vladimir Razuvaev
f369d4e2d4
Reverted unnecessary breaking change
2017-08-15 23:39:07 +07:00
Vladimir Razuvaev
3971001f6d
Server: additional tests + related fixes
2017-08-15 20:59:48 +07:00
Vladimir Razuvaev
828c6b0fc3
Server: disable query batching by default; allow array as server config
2017-08-15 18:05:09 +07:00
Vladimir Razuvaev
9931cde6d4
Tests for lazy type loading during query execution + related changed
2017-08-15 01:49:56 +07:00
Vladimir Razuvaev
e4813c3a05
Additional checks and tests for situations when user-land code returns duplicate type instances
2017-08-14 23:52:17 +07:00
Vladimir Razuvaev
8817d54e83
Validate that type loader always returns the same type instance as referenced in other parts of the schema
2017-08-14 22:32:07 +07:00
Vladimir Razuvaev
b9d3a11785
Extracted lazy schema test; minor related refactoring
2017-08-14 20:41:08 +07:00
Vladimir Razuvaev
f47db61907
Fully load all schema types in constructor when type loader is not set
2017-08-14 19:44:16 +07:00
Vladimir Razuvaev
884a8967f3
Type loader tests
2017-08-14 19:42:01 +07:00
Vladimir Razuvaev
20f8cab943
Removed schema descriptor (as lazy loading of types can work without it now)
2017-08-14 01:42:02 +07:00
Vladimir Razuvaev
f9eb14869f
Removed callbacks in field types (previously deprecated in #35 )
2017-08-14 00:50:24 +07:00
Vladimir Razuvaev
6845b28a35
Deprecated GraphQL\Type\Definition\Config
( #148 )
2017-08-14 00:09:02 +07:00
Vladimir Razuvaev
ed3591c1a9
Fixed broken build
2017-08-13 23:24:23 +07:00
Vladimir Razuvaev
34eae0b891
Schema validation + tests ( #148 )
2017-08-13 23:04:03 +07:00
Vladimir Razuvaev
f911fac7b1
Default error reporting now includes "category" key for every error
2017-08-08 02:02:07 +07:00
Vladimir Razuvaev
09070485c1
Added ability to decorate type configs in BuildSchema + made type creation lazy
2017-07-28 17:55:25 +07:00
Vladimir Razuvaev
1af902865b
AST: new NodeList
class for collections of nodes (vs array) to enable effective conversion of libgraphqlparser output to our AST tree
2017-07-21 22:29:59 +07:00
Vladimir Razuvaev
e04d3300a7
Server: send result for regular responses + prepare response for PSR7 request
2017-07-21 22:11:20 +07:00
Vladimir Razuvaev
e6e531b88b
Server: throw only when there is a configuration or logic error (invariant violation)
2017-07-19 19:30:39 +07:00
Vladimir Razuvaev
38922dbbed
Default error formatter now returns "Internal server error" unless error is client-aware and safe to report directly to end-users
2017-07-18 20:57:30 +07:00
Vladimir Razuvaev
8e3d1eb29b
Merge branch 'master' of https://github.com/webonyx/graphql-php into v0.10
2017-07-18 00:42:52 +07:00
Vladimir Razuvaev
8fe26a1a21
String and ID types should not try to convert non-scalar values to string ( #121 )
2017-07-18 00:25:45 +07:00
Vladimir Razuvaev
919cf80240
Server: batched queries with shared deferreds (promises) #105
2017-07-17 20:31:26 +07:00
Vladimir Razuvaev
0e2ac57515
Split HTTP server execution to canonical replaceable steps: parsing, validation, execution with separate tests for each step
2017-07-17 16:57:30 +07:00
Vladimir Razuvaev
f8c3195e54
Granular methods for HTTP request parsing + tests
2017-07-16 19:04:58 +07:00
Vladimir Razuvaev
d2cbb0c354
Restored tests for deprecated GraphQL\Server
2017-07-14 20:06:24 +07:00
Vladimir Razuvaev
794d3672ef
Initial pass on standard server implementation (also deprecated current GraphQL\Server which is undocumented anyway)
2017-07-14 19:44:18 +07:00
Vladimir Razuvaev
37a42ededd
Query validation should pass if empty array of rules is provided
2017-07-13 02:39:24 +07:00
Vladimir Razuvaev
aaa5b7af41
Global config; descriptor moved to appropriate namespace; minor cleanup
2017-07-12 13:16:34 +07:00
Vladimir Razuvaev
296544089c
Moved GraphQL\Utils to GraphQL\Utils\Utils
2017-07-10 19:53:46 +07:00
Vladimir Razuvaev
ed28deda81
Replaced trigger_error with Warning for resolveType warning
2017-07-10 19:38:12 +07:00