Comments (11)
Hello!
Thanks for the support.
I'm actually using a lambda function to define my constant.
I was talking with a friend and he gave me some light on how operations work and seem like if I define a name for my mutation operation, it doesn't work.
mutation createSomething($name: String!, $filter: createSomethingFilterInput!, $frequency: SomethingFrequency!) { ...
throws constant name error.
mutation CreateSomething($name: String!, $filter: createSomethingFilterInput!, $frequency: SomethingFrequency!) { ....
create a module class, not a #<GraphQL::Client::OperationDefinition:...>
mutation($name: String!, $filter: createSomethingFilterInput!, $frequency: SomethingFrequency!) { ...
Works just fine.
from graphlient.
I'm not sure what you refer to by "as a string", but parsed results can only be set to constants, which in Ruby must start with a capitalized letter. Have you tried renaming mutation
to Mutation
?
from graphlient.
this looks ok to me, the only thing I can think of is '
around GRAPHQL
, can you try removing that? or switch to something like
%(
mutation createSomething($name: String!, $filter: createSomethingFilterInput!, $frequency: SomethingFrequency!) {
createSomething(name: $name, filter: $filter, frequency: $frequency) {
success
message
__typename
}
})
from graphlient.
I should've been more clear on what I was really referring to by mutation
, but I was referring to the local variable mutation
in Ruby, not the one in the actual GraphQL query:
-mutation = @client.parse <<-'GRAPHQL'
+Mutation = @client.parse <<-'GRAPHQL'
The single quotes around GRAPHQL
is valid Ruby syntax:
foo = <<-'GRAPHQL'
text
GRAPHQL
# => " text\n"
from graphlient.
interesting! so parse
in Graphlient
underneath uses graphql-client
to parse the query, if you pass in a block, it will first try to create query string from it and otherwise it will just pass it to the underneath parse
method. Looking at their examples i don't see them using mutation or query alias.
On the other hand, i don't think you'd need that mutation name necessarily, that only changes how you access the results of that mutation and adds a createSomething
to response path. so instead of response.data.data...
you'd access thing using response.data.create_someting
. Unless you are planning to have multiple mutation per one request, i don't think you'd need that alias. Hope this helps 💚
from graphlient.
My team uses mutation names to track down possible issues @ datadog... if the operation doesn't have a name, it's a bit harder to debug* :)
Thanks again for the support!
from graphlient.
@leoGalani , Sorry haven't had a chance to look at this yet, did you figure out how to fix it? I was hoping to create a failing spec and go from there.
from graphlient.
I didn't have time to stop and look at how the parsing goes.
Once I finish my mid tasks, I will fork your repo and try some stuff out and then come with a PR :)
For now, I don't mind not having an operation name 😅
from graphlient.
We have an around for this by using tools-aoeur#1.
from graphlient.
Related Issues (20)
- cannot stub request anymore HOT 11
- Unable to pass literal values / constants in Ruby HOT 3
- Getting error - After upgrading rails from 5.2.8 to 6.1.7 HOT 3
- [FEATURE] Expose underlying HTTP response HOT 1
- Custom type name lookup not working HOT 2
- How to pass context in query? HOT 14
- Dynamically change headers HOT 2
- Don't know how to pass custom input types HOT 2
- disable schema dump HOT 3
- How to stub with webmock HOT 12
- Faraday Timeouts no longer coming through as instance of Graphlient::Errors::FaradayServerError HOT 6
- Latest version incompatible with faraday 1.0.0 HOT 8
- Camelcasing => ClientError between 0.3.3 & 0.3.7 HOT 4
- Cache Faraday::Connection and use Faraday::Adapter::NetHttpPersistent
- How to query without a schema? HOT 2
- Are union types supported using block syntax? HOT 1
- Possibility of dynamically adding fields to a query? HOT 3
- Docs incorrectly state that Graphlient::Errors::TimeoutError does not inherit from Graphlient::Errors::ServerError HOT 3
- Enable the use of FragmentDefinition constants within blocks HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphlient.