【发布时间】:2020-10-18 05:53:54
【问题描述】:
当用户创建 Post 类型的数据时,我还需要 graphql 服务器自动创建 Commit 类型的数据。 Commit 类型连接到 User 类型和 Post 类型。这是 User 类型、Post 类型和 Commit 类型的 graphql 模式:
type User {
id: ID!
username: String!
commits: [Commit!]!
}
type Post {
id: ID!
title: String!
content: String
commits: [Commit!]!
}
type Commit {
id: ID!
user: User!
post: Post!
}
所以我做了一个 createPost 突变。 createPost 突变必须同时完成两项工作:创建 Post,然后创建 Commit。 Commit 数据应该连接到新创建的 Post 数据。以下是我到目前为止想出的解析器:
Mutation: {
createPost: async (_, args) => {
const {user, title, content} = args;
await prisma.createPost({
title,
content
});
const postId = await prisma.post({title}).id();
await prisma.createCommit({
user: {connect: {id: user.id}},
post: {connect: {id: postId }}
});
const newPost = await prisma.post({id:postId});
return newPost;
}
}
这是一种有效的方法吗?或者有更好的方法吗?
【问题讨论】:
标签: graphql prisma prisma-graphql