Невозможно вернуть пустое или непустое поле User.Role не может получить данные отношения из мутации призмы
Я пытаюсь поиграть в APOLO SERVER, GRAPHQL PRISMA и структуру в очень простых вещах.. Я не могу вернуть данные отношения из простого запроса..
КОГДА я пытаюсь добавить пользователя вместе с идентификатором роли... я не могу получить обратно информацию о роли
Что я использую?
"dependencies": {
"apollo-server": "^2.9.3",
"bcryptjs": "^2.4.3",
"graphql": "^14.5.5",
"graphql-import": "^0.7.1",
"jsonwebtoken": "^8.5.1",
"prisma-client-lib": "^1.34.8"
}
для МОЙ ПРОСТОЙ ЗАПРОС;
mutation{
createUser(name:"tst",
roleId:"ck0lx425n00z50782jgcl4qg8")
{
name
role{
code}
Graphql возвращает ошибку, говоря
{
"errors": [
{
"message": "Cannot return null for non-nullable field User.role.",
"locations": [
{
"line": 4,
"column": 5
}
],
"path": [
"createUser",
"role"
],
"extensions": {
"code": "INTERNAL_SERVER_ERROR",
"exception": {
"stacktrace": [
"Error: Cannot return null for non-nullable field User.role.",
ГАФКЛ ЩЕМА
scalar DateTime
type User {
id: ID!
name: String!
role:Role!
createdAt:DateTime
}
type Role{
id:ID!,
code:String!
users:[User!]!
}
type Query {
users:[User!]!
user:User!
roles:[Role!]!
role:Role!
}
type Mutation {
createRole(code:String!):Role!
createUser(name:String!,roleId:String!):User!
}
ЗАПРОС
function users(parent, args, context) {
return context.prisma.uses()
}
function roles(parent,args,context){
return context.prisma.roles()
}
МУТАЦИИ
function createRole(parent,args,context,info){
return context.prisma.createRole({
code:args.code
});
function createUser(parent,args,context,info){
return context.prisma.createUser({
name:args.name,
role:{
connect:{id:args.roleId}
}
},info);
}
ПРИЗМА ДАТАМОДЕЛЬ
type User {
id: ID! @id
name:String!
createdAt:DateTime @createdAt
role:Role! @relation(Name:"Role Assinged To User")
}
type Role{
id:ID! @id
code:String!
users:[User!]! @relation(Name:"Role Assinged To User")
}
Может ли какое-то тело мне помочь, как это исправить... Я знаю, что это будет основным, что я упускаю... Я изо всех сил пытаюсь понять? мне не хватает чего-то очень простого?
1 ответ
При создании ролей вам также необходимо указать пользователя, поскольку вы сделали это требованием, которое может вызвать ошибки.