Mutations
If your GraphQL API has mutations, you'll need to define a mutation type:
@gql.type
type mutation
Notice that mutation is also an abstract type, just like query.
Adding fields to Mutation
Fields are added to Mutation just like you'd add fields to any other type:
@gql.field
let setNewName = (_: mutation, ~newName, ~userId, ~ctx: ResGraphContext.context) => {
// Returns promise<option<user>>
ctx.mutations.setNewUserName(~userId=userId->ResGraph.idToString, ~name=newName)
}
type Mutation {
setNewName(newName: String!, userId: ID!): User
}
Notice _: mutation. ResGraph needs to know that it's Mutation you want to attach this field to, but since there's nothing you can actually do with your abstract mutation type, it's good practice to name it _.
A good next read is how to define object types.