Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Null literal is unsupported #427

Closed
dh94 opened this issue May 12, 2017 · 6 comments
Closed

Null literal is unsupported #427

dh94 opened this issue May 12, 2017 · 6 comments
Milestone

Comments

@dh94
Copy link
Contributor

dh94 commented May 12, 2017

currently in graphql-java we can't distinguish between provided nulls and unprovided values,
even worse - the query just fails
see the official graphql pr here
graphql/graphql-spec#83

@andimarek
Copy link
Member

comment by @bbakerman:

We could extend the grammar to allow a NullValue to be captured in syntax eg:

field (arg : null)
The trick then would be how best to tell DataFetchers that the value is null literal versus not present

@ieugen
Copy link

ieugen commented May 13, 2017

@andimarek : java.util.Optional could do that, no ?

bbakerman added a commit to bbakerman/graphql-java that referenced this issue May 13, 2017
… provided" null support

This is an early push for demostration purposes
@andimarek andimarek added this to the 4.0.0 milestone May 14, 2017
@bbakerman
Copy link
Member

java.util.Optional would indeed do it

but we would have to change the current behaviour from

T argValue = environment.getArgument("arg")

to

Optional argValue = environment.getArgument("arg")

This would break all existing code. Its a tricky one

@ieugen
Copy link

ieugen commented May 15, 2017

As they say: If you wish to make an omelet... release version 4 :).

@andimarek
Copy link
Member

see #434

bbakerman added a commit to bbakerman/graphql-java that referenced this issue May 22, 2017
bbakerman added a commit to bbakerman/graphql-java that referenced this issue May 23, 2017
bbakerman added a commit to bbakerman/graphql-java that referenced this issue May 24, 2017
andimarek pushed a commit to bbakerman/graphql-java that referenced this issue May 24, 2017
andimarek pushed a commit to bbakerman/graphql-java that referenced this issue May 24, 2017
andimarek pushed a commit to bbakerman/graphql-java that referenced this issue May 24, 2017
bbakerman added a commit to bbakerman/graphql-java that referenced this issue May 27, 2017
bbakerman added a commit to bbakerman/graphql-java that referenced this issue May 27, 2017
…in any entries with names not defined by a field of this input object type, otherwise an error should be thrown.
bbakerman added a commit that referenced this issue May 28, 2017
* #427 added null support but have not added optional arguments yet

* #427 added spec tests and values resolver support

* #427 more tests and a specific exception for coerced null values

* #427 added null support but have not added optional arguments yet

* #427 added spec tests and values resolver support

* #427 more tests and a specific exception for coerced null values

* add null value parser test

* cleanup: remove dead code

* #427 - more tests for null variables values

* #427 - extra test for This unordered map should not contain any entries with names not defined by a field of this input object type, otherwise an error should be thrown.
@bbakerman
Copy link
Member

Implemented via PR #452

GrigoryPtashko added a commit to GrigoryPtashko/graphql-java that referenced this issue May 29, 2017
* upstream/master:
  graphql-java#438 - unit test for NonNullableFieldValidator
  graphql-java#438 now with double checks in null values that might come out of coercion
  graphql-java#457 - support for implicit schema when types are named `Query`
  graphql-java#427 TDD driven null support (graphql-java#452)
  refactoring add some comments
  fix javadoc
  tweak build
  update jdk version for travis build cleanup
  build javadoc too to ensure that it is all valid javadoc
  fix javadoc
  mark as internal
  cleanup
  mark internal validation classes as @internal a bit refactoring
  Added antlr parsing tests as outlined in graphql-java#200
  graphql-java#448 parse null pointer
  make buildRegistry public
  Introspection parser (graphql-java#463)
  fix test
  improve assertion error
  document current behaviour of failed serialization with test
  rename test classes to *Test (before it was *Spec)
  update javadoc for serialize/parseValue
  fix test add MapEnumValuesProvider for simple map based mappings
  rename StaticEnumValuesProvider to NaturalEnumProvider
  enum values provider
  Scalar changes (graphql-java#455)
  cleanup: combine catch block
  Make NoOpInstrumentation.INSTANCE final
  don't trim comment lines for description
  bugfix: comments as descriptions this is a small bugfix for enum field descriptions and a change so that an empty line in an comment separate a comment from a description (for the IDL)
  adding tests for missing arguments to document the current behaviour
  add test for too large int literal, which is failing currently
  docs: fix styling issues
  docs
  docs
  docs
  doc: add relay info
  cleanup: remove assert statements and author comments
  remove jacoco: not working currently
  improve javadoc, mark as public spi
  docs: typo
  update version
  updated readme, delete readme.next
  initial version of new documentation
  improve assertion method
  refactoring: removed `ResolvedTypeInterface`
  graphql-java#419 - dynamic runtime wiring factory support
  add index.rst
  add docs folder
  Add environment to field instrumentation.
  Update README.next.md
  Move related projects to top of readme
  fix merge
  fix merge
  add lincol to exception
  Download gradle over https
  add public annotation
  add public annotation
  renames SchemaCompiler -> SchemaParser and SchemaDecompiler -> SchemaPrinter
  IDL: fix subscription support
  IDL: fix missing subscription support
  add public/internal annotations
  fix IDL example
  add test for SchemaValidator
  graphql-java#414 added schema validation in subscriptions
  remove link to google group: ask to open a new issue instead
  remove javadoc link
  425 improve wrong type exceptions (graphql-java#429)
  phrase better exception messages
  fix union IDL parsing and add tests for it
  rebase from master
  better exceptions for incorrect types
  fix union type generation (test missing)
  do not overwrite top level schema definition during type registry merge
  Fixed tests
  Test class that had an invalid schema in place
  object interface is now validated
  added argument support to graphql schema checking on interfaces - with default value checks
  added argument support to graphql schema checking on interfaces
  remove list of related projects in favour of the awesome list
  add @documented
  add public/internal/spi annotations
  graphql-java#409 - renamed schema validator code to exactly that
  graphql-java#410 -  Added interface checking on types at IDL level
  graphql-java#409 - Added interface checking on object types
  graphql-java#406 - PR clean code fix ups
  Made DataFetchingFieldSelectionSet a supplier since it really is
  Added a selection set interface instead as suggested.  This means field collector doesnt NOT have to be API
  revert changes: will be handled in a PR
  add public/internal/spi annotations
  Documentation: add graphql language identifier
  Documentation: remove outdated java 8 lambdas note
  Documentation: use correct heading
  Documentation: minor wording change
  remove duplicate code
  remove TypeOrReference, but changing the return type of `getInterfaces` and `getTypes` at the same time.
  redefine references api Removes the TypeReference class in favour of the already existing GraphQLTypeReference.
  simplify subscription test a bit
  subscription documentation
  subscription documentation
  add subscription documentation
  graphql-java#406 readme updates for type extensions
  graphql-java#406 added extend type XXX {} support
  ExecutionContext is not longer API but there is a replacement
  Makes type name specified to builder
  graphql-java#402 - put a next version README in place
  graphql-java#377 - have the ability to know and capture all fields in a data fetcher
  cleanup: replace explicit type arguments with diamond operator <>
  cleanup: remove redundant type infos
  cleanup: rename class to match actual file
  remove BuilderFunction in favour of Java 8 UnaryOperator
  Merge remote-tracking branch 'upstream/master' into kaqqao-122TypeResolver
  cleanup: public is not needed on interfaces
  Added more tests for the bug in schema generator
  Fixed a bug where schema generator is nor respecting type uniqueness
  PR feedback  - moved classes around and made the IDL spec support call
  PR feedback and made methods static since they had no state
  Breaking change: Renaming the map with extra types for the schema from `dictionary` to `additionalTypes` to make it more clear.
  Revert "graphql-java#383 added extra readme documentation for specific references"
  Add failing test case for missing fragment name
  Adding extra data to type resolver
  graphql-java#379 added extra readme documentation for causing mutations
  graphql-java#383 added extra readme documentation for specific references
  Add fragment definitions and execution id to DataFetchingEnvironment (fixes graphql-java#303).
  Fixed a problem where non unique type names cause class exceptions later down the track.
  Removes javadoc warnings during build time
  graphql-java#296 - now with an AST from object support and tests
  graphql-java#296 -more tests for extra conditions
  graphql-java#296 - added a AST pretty printer system so I can fix other problems like 296
  Allow ExecutionStrategy to specify dataFetchingExceptionHandler
  graphql-java#381 - Added more tests for merging and change the signature to throw SchemaProblem
  revert two files
  graphql-java#381 - Adds the ability to compile and build executable schemas from schema IDL definitions
  and also method reference
  use lambda where possible
  graphql-java#352 - fixed the bug where too many tokens are allowed as valid
  closes graphql-java#122 Provide more information to TypeResolver
  fix with java8
  type param and misc.
  Adding support for subscriptions with an implemenation to enable adding a user defined subscriptionType. Subscriptions can be thought of as mutations by a different name and with a different purpose and, as such, the implementation here is the same as that of mutations.
  graphql-java#268 - now follows spec in regard to null error handling
  fix an errant newline
  Check for invalid list indices on client-provided cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants