Search code examples
graphqlaws-amplifyaws-appsyncdynamodb-queries

How can I insert records in AwsAppSync mutation with proper @connection values?


I have added a resources table to my schema, connecting to a Plants table:

type Resource @model
{
    id: ID!
    name: String!
    Plants: [Plant] @connection(name: "ResourcePlant")
}

Ran amplify push, and all resources were created properly.

Now I wanted to add a Resource, and link it to all Plants properly.

Do you know how is the sintaxe I should use to run the recently created mutation createResource in order to add the items on Plant I want to include to that resource?

I tried to run like this:

mutation CreateResource {
  createResource (input: {
        name: "Plant",
        Plants : {
            items :  
            { id: "f9a0468e-da74-41d5-8287-1cb6a76b25a5" }
    }
  }
  ) {
    name,
    Plants {
      items {
        id
      }
      nextToken
    }
  } 
}

This was the error message:

Validation error of type WrongType: argument 'input' with value
 'ObjectValue{objectFields=[ObjectField{name='name',
 value=StringValue{value='Plant'}}, ObjectField{name='Plants',
 value=ObjectValue{objectFields=[ObjectField{name='items', value=ObjectValue{objectFields=[ObjectField{name='id', 
value=StringValue{value='f9a0468e-da74-41d5-8287-1cb6a76b25a5'}}]}}]}}]}'
 contains a field not in 'CreateResourceInput': 'Plants' @ 'createResource'


Solution

  • How did you define Plant?

    And have you checked this example? https://aws-amplify.github.io/docs/cli-toolchain/graphql#connection