Клиент Apollo и ошибка запроса graphQl: переменная '$ where' ожидаемое значение типа 'OrganizationWhereUniqueInput - PullRequest
0 голосов
/ 07 августа 2020

Привет, я делаю внутренний сервер с GraphQL, клиентом Apollo и Prisma. Я пытаюсь написать запрос, чтобы получить обратно данные организации. Пользователь, отправляющий запрос, должен получить обратно данные своей организации на основе своего идентификатора. При запуске запроса на игровой площадке я получаю эту ошибку.

error:

"message": "Variable '$where' expected value of type 'OrganizationWhereUniqueInput!' but got: {\"employees\":{\"id\":\"ckas83z13t9qk0992pucglc4k\"}}. Reason: 'employees' Field 'employees' is not defined in the input type 'OrganizationWhereUniqueInput'. (line 1, column 8):\nquery ($where: OrganizationWhereUniqueInput!) {\n       ^",

Я не понимаю, что я сделал не так. Я все еще новичок во всем этом. Я пытался записать функцию в Query.js разными способами, но безуспешно. Кроме того, я все еще нахожу сообщения об ошибках, которые вы получаете на игровой площадке, очень запутанными

schema:

type Query {
    getOrganization: Organization!
}

type Organization {
    id: ID!
    name: String!
    country: String!
    street: String!
    zipCode: Int!
    houseNumber: Int!
    addings: String
    employees: [User!]

}

type User {
    id: ID!
    firstname:String!
    lastname:String!
    email: String!
    services: [Service!]
    organization: Organization!
}

query. js

function getOrganization(parent, args, context, info){
    const userId = getUserId(context)
        return context.prisma.organization({employees:{id:userId}})   
}

// also tried this 
/*
function getOrganization(parent, args, context, info){
    const userId = getUserId(context)
        return context.prisma.organization({where: {employees:{id:userId}}})   
}*/

User. js

function services (parent, args, context){
    return context.prisma.user({id: parent.id}).services()
}

function organization (parent, args, context){
    return context.prisma.user({id: parent.id}).organization()
}


module.exports={
    services,
    organization
}

Организация. js

function employees(parent, args, context){
    return context.prisma.organization({id: parent.id}).employees()
}

module.exports={
    employees
}

Может ли кто-нибудь помочь мне увидеть, что пошло не так?

запрос на игровой площадке:

query{
  getOrganization{
    name 
    id 
  }}

HTTP HEADER:

{
  "Authorization": "Bearer {contains user token }"
}

1 Ответ

0 голосов
/ 07 августа 2020

Просто используйте OrganizationWhereInput вместо OrganizationWhere Unique Input . Он вернет список организаций вместо одного результата (может вернуть пустой массив), но должен позволить вам искать организацию с использованием идентификатора сотрудника.

...