Commit Graph

549 Commits

Author SHA1 Message Date
Vladimir Razuvaev
87c812b221 Better located error handling 2017-07-19 20:08:42 +07:00
Vladimir Razuvaev
81986145fe Server: moving things around to simplify 2017-07-19 19:55:22 +07:00
Vladimir Razuvaev
08a68d4857 Throwing GraphQL\Error\Error vs GraphQL\Error\UserError from type definitions 2017-07-19 19:39:10 +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
90088c7bde Note in UPGRADE.md about new base class of GraphQL\Error\UserError 2017-07-19 15:52:00 +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
fbcd20814a Scalar type serialize method now throws InvariantViolation and parseValue throws UserError 2017-07-18 20:52:39 +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
49208d758d Server: use proper batching helper 2017-07-17 23:48:30 +07:00
Vladimir Razuvaev
919cf80240 Server: batched queries with shared deferreds (promises) #105 2017-07-17 20:31:26 +07:00
Vladimir Razuvaev
24ffd605f4 New method "Executor::promiseToExecute()" which always returns promise (even for SyncPromiseAdapter) 2017-07-17 19:47:29 +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
a3b40db0fb Enhanced Utils::printSafe() to output more information about arrays 2017-07-14 15:16:43 +07:00
Vladimir Razuvaev
3f04d29628 Ability to pass custom set of validation rules when executing a query (including empty set to skip validation) #134 2017-07-13 20:33:09 +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
65d9472b0b Moved PromiseAdapter to ExecutionContext; allow passing it to Executor::execute() directly vs setting statically 2017-07-12 19:44:04 +07:00
Vladimir Razuvaev
bf0a7a8e2b Change minimum PHP version requirement from 5.4.0 to 5.5.0 (to enable try-finally and generators) 2017-07-12 17:46:43 +07:00
Vladimir Razuvaev
aaa5b7af41 Global config; descriptor moved to appropriate namespace; minor cleanup 2017-07-12 13:16:34 +07:00
Vladimir Razuvaev
5e6acb60a6 Merge pull request #142 from symm/shorthand-docs
Add example for building schema from IDL
2017-07-11 21:49:49 +07:00
Gareth Jones
81376e7c34
Document shorthand usage 2017-07-10 21:14:34 +01: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
Vladimir Razuvaev
9551569ffe Merge branch 'lazy-types' into v0.10
# Conflicts:
#	src/Executor/Executor.php
2017-07-10 17:11:41 +07:00
Vladimir Razuvaev
463d995d95 Reverted #116 (now Executor::defaultFieldResolver checks for instanceof Closure vs is_callable again) 2017-07-08 15:22:17 +07:00
Vladimir Razuvaev
3beeb06340 Merge branches 'master' and 'v0.10' of https://github.com/webonyx/graphql-php into v0.10
# Conflicts:
#	src/Utils/MixedStore.php
2017-07-06 19:50:23 +07:00
Vladimir Razuvaev
bc6a7a3d1d Fix: allow MixedStore to accept true, false, null and floats as keys + related tests 2017-07-06 19:29:33 +07:00
Vladimir Razuvaev
24bcc65314 SchemaPrinter: reverted sorting of fields in printed version (as it breaks s = parse(print(s)) rule) 2017-07-05 19:45:02 +07:00
Vladimir Razuvaev
ea94ee7515 Utility function getDirectiveValues + related refactoring 2017-07-05 19:33:25 +07:00
Vladimir Razuvaev
a79a51d445 Schema Parsing: allow leading pipe for union type definitions 2017-07-05 19:01:13 +07:00
Vladimir Razuvaev
30632050a5 Validation: added test cases to check support for good negative floats and ints 2017-07-05 18:35:45 +07:00
Vladimir Razuvaev
0b7d55c30d SchemaPrinter: sort fields before printing to get more stable diff 2017-07-05 18:33:16 +07:00
Vladimir Razuvaev
9b9a74c1d1 Spec compliance: errors in buildExecutionContext() are caught and included in result rather than thrown 2017-07-05 17:33:59 +07:00
Vladimir Razuvaev
678cf5d0bf Renamed argument of GraphQL::execute() 2017-07-05 16:26:02 +07:00
Vladimir Razuvaev
78d9ba0d5e Allow providing default field resolver for execution call 2017-07-05 16:22:01 +07:00
Vladimir Razuvaev
9f4980ce49 Fix for broken build on PHP < 5.6 2017-07-04 22:18:55 +07:00
Vladimir Razuvaev
b47c87f793 Allow null values for enums 2017-07-04 20:19:52 +07:00
Vladimir Razuvaev
f569c6de2d Spec compliance: coercion of Int values 2017-07-04 18:27:20 +07:00
Vladimir Razuvaev
90e1ea4d22 Added tools for warnings with ability to suppress them 2017-07-04 17:13:05 +07:00
Vladimir Razuvaev
88b85c9761 Make 'errors' top property in response array 2017-07-04 16:29:30 +07:00
Vladimir Razuvaev
1c41fb27ed Added test for enums with null values 2017-07-04 16:27:40 +07:00
Vladimir Razuvaev
189877c173 Allow passing custom TypeInfo to validate 2017-07-04 16:19:16 +07:00
Vladimir Razuvaev
a53b798f29 Minor spelling fix 2017-07-04 16:12:56 +07:00
Vladimir Razuvaev
fc9ad7e37a Unify wording in error messages 2017-07-04 14:02:35 +07:00
Vladimir Razuvaev
76e182e616 Forbid duplicate type definitions 2017-07-04 14:01:00 +07:00
Vladimir Razuvaev
c3db8de9e7 Note about dunderscore becoming hard error in next version 2017-07-04 13:58:56 +07:00
Vladimir Razuvaev
3e1fc1a922 Refactored isThenable checks in Executor 2017-07-04 13:47:50 +07:00