I'm trying to write a mutation query and it works perfectly with graphql
mutation($project: ProjectsInput) {
NewProject(project: $project) {
name,
namespace,
environments{
env,
}}}
these are the query variables
{"project": {
"name": "Pr1",
"namespace": "Pr2",
"environments":
[{"env": "rec"},{"env": "dev"}]
}}
and this is how it looks graphql mutation now I am trying to use Apollo Client in angular to build this mutation like so
createProject() {
this.apollo.mutate({
mutation: gql`
mutation($project: ProjectsInput) {
NewProject(project: $project) {
name,
namespace,
environments{
env,
}
`,
variables: {
project: {
name: "sth",
namespace: "sth2",
env: [
{env:"env1"},
{env:"env2"}
]
}
}
}).subscribe(data => {
console.log('New project created!', data);
}); }
But i'm getting Http failure response because of the variable $env of type Array.i want to pass an array as a variable for the query in apollo client.I don't have problems with variables of type string but the array objects causes this error.
NewProject(project:
shows that your NewProject
mutation needs one project
parameter
change query to
mutation($project: ProjectsInput) {
NewProject(project: $project) {
name,
namespace,
environments{
env,
}
and pass one, entire object to variable project
use query variables
in graphiql
to define test variables:
{
project: {
name: "sth",
namespace: "sth2",
environments: [
{env:"env1"},
{env:"env2"}
]
}
}
then in client prepare the same kind of object for project
variable (with structure matching your mutation input type, of course).