Невозможно использовать фрагменты с Prisma

У меня та же проблема этой темы. Невозможно использовать фрагменты в GraphQL-йоге с Primsa.

Однако решение не сработало для меня.

Я пытаюсь ограничить доступ пользователей к чужой электронной почте с помощью фрагментов. Если я отправляю идентификатор через запрос, я вижу свою электронную почту, но не вижу других, что ожидается. Однако, если я не отправлю удостоверение личности, я не получу письмо.

Я думаю, что у меня все хорошо настроено или я слишком слеп, чтобы понять, что не так. Кто-нибудь может подсказать мне, что происходит?

Я использую "graphql": "^14.3.1", "graphql-cli": "^3.0.11", "graphql-yoga": "^1.17.4" и prisma 1.34

Мой пользователь распознает это

import getUserId from '../utils/getUserId'

const User = {
    email: {
        fragment: 'fragment userId on User { id }',
        resolve(parent, args, {
            request
        }, info) {
            const userId = getUserId(request, false)
            console.log(userId) //here I can see the id of the logged user
            console.log(parent.id) // here I see UNDEFINED
            if (userId && userId === parent.id) {
                return parent.email
            }
            return null
        }
    }
}

export {
    User as
    default
}

Мой сервер.js:

import {
    GraphQLServer,
    PubSub
} from 'graphql-yoga'
import {
    resolvers,
    fragmentReplacements
} from './resolvers/index'
import prisma from './prisma'

const pubsub = new PubSub()

const server = new GraphQLServer({
    typeDefs: './src/schema.graphql',
    resolvers,
    context(request) {
        return {
            pubsub,
            prisma,
            request
        }
    },
    fragmentReplacements
})
console.log(fragmentReplacements) //Here I can see that the application is picking up the fragments
export {
    server as
    default
}

Наконец, мой запрос пользователя:

        prisma
    }, info) {

        const opArgs = {
            first: args.first,
            skip: args.skip,
            after: args.after,
            orderBy: args.orderBy
        }

        if (args.query) {
            opArgs.where = {
                OR: [{
                    name_contains: args.query
                }]
            }
        }

        return prisma.query.users(opArgs, info)
    },```

0 ответов

Другие вопросы по тегам