Cannot use variables in certain queries
Opened this issue · 2 comments
Hello! This might just be me being obtuse, but I cannot get the following query to work with variables
Here is my config object with the query
{
resolve: `gatsby-source-github-api`,
options: {
token: process.env.GITHUB_ACCESS_TOKEN,
graphQLQuery: `
{
search(type: REPOSITORY, query: "user:$userName topic:$topicName", last: 50) {
repos: edges {
repo: node {
... on Repository {
url
openGraphImageUrl
name
description
}
}
}
}
user(login: $userName) {
pinnedItems(first: 10) {
nodes {
... on Repository {
id
name
description
watchers {
totalCount
}
languages(first: 2) {
nodes {
color
name
}
}
}
}
}
}
}
`,
variables: {
userName: "RyanCross",
topicName: "game-jam"
}
}
}
The first part of the query works just fine (tested on its own), but this second piece fails
user(login: $userName) {
I believe this has to do with the surrounding quotes, if I replace it with the original value "RyanCross
" the query executes fine.
Tried wrapping the variable with quotes in the template string and tried something like:
{
variables: {
userName: "RyanCross",
userName2: "\"RyanCross\""
}
Query still failed on build though :(. Any ideas?
Your query is malformed, and doesn't work in the Explorer.
You are missing this on the first line:
query($userName:String!){
reference: graphql/graphiql#156 (comment)
query($userName:String!){
search(type: REPOSITORY, query: "user:$userName topic:$topicName", last: 50) {
repos: edges {
repo: node {
... on Repository {
url
openGraphImageUrl
name
description
}
}
}
}
user(login: $userName) {
pinnedItems(first: 10) {
nodes {
... on Repository {
id
name
description
watchers {
totalCount
}
languages(first: 2) {
nodes {
color
name
}
}
}
}
}
}
}
I'm not 100% sure if this fixes your problem, but I hope it helps!
@RyanCross did my suggestion work? I sure hope so. I'll close this issue in about ~3 months if I don't hear back from you or anyone else, as I believe it was an issue of how to format the query rather than an actual issue with the plugin
(see my previous answer for more info)