Peter Mbanugo
03/15/2019, 12:21 PMtype Query {
info: String!
users: [User!]!
conversations: [Conversation!]!
conversation(id: String!): Conversation!
}
type Mutation {
createUser(name: String!): User!
createConversation(user1: ID!, user2: ID!): Conversation!
}
type User {
id: ID!
name: String!
conversations: [Conversation!]!
}
type Conversation {
id: ID!
messages: [Message!]!
users: [User!]!
}
type Message {
id: ID!
content: String!
createdAt: String!
userId: ID!
conversation: Conversation!
}
And I have my resolvers implemented as such:
const resolvers = {
Query: {
info: (root, args, context) =>
`This is the API of chatt app for Packt course`,
users: (root, args, context) => context.prisma.users(),
conversations: (root, args, context) => context.prisma.conversations(),
conversation: (root, args, context) =>
context.prisma.conversations({ id: args.id })
},
Mutation: {
createUser: (root, args, context) => {
return context.prisma.createUser({
name: args.name
});
},
createConversation: (root, args, context) => {
return context.prisma.createConversation({
users: {
connect: [{ id: args.user1 }, { id: args.user2 }]
}
});
}
},
Conversation: {
users: (parent, args, context) => {
console.log("calling users");
return context.prisma.conversations({ id: parent.id }).users();
},
id: (parent, args, context) => parent.id
},
User: {
conversations: (parent, args, context) => {
return context.prisma.users({ id: parent.id }).conversations();
}
}
};
When I call the query
query {
conversation (id: "cjta0oy64ocr60b79pevff0lw"){
id,
users {
name
}
}
}
I get an error that says
{
"data": null,
"errors": [
{
"message": "Could not find argument id for type Conversation",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"conversation"
]
}
]
}
I don’t know what that means