Avoid (incorrectly) deserializing already serialized v2 query response #27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Avoid deserializing the serialized query response back into a v2
QueryReponse
. This was broken because the deserializer does not have enough information to differentiate between object-valued fields and relations.The reason we were deserializing the v2 response was so that we could convert it into a v3
QueryResponse
. Fortunately, it is not necessary to do this. The v2 and v3 query responses have almost the same JSON representation. The only difference is that in v3 the response is returned within a (singleton) array.Therefore, rather than fully deserializing to a v2
QueryResponse
, all we need to do is deserialize to a JSON value, wrap it in an array and serialize again.