Size: a a a

GraphQL — русскоговорящее сообщество

2020 September 15

MK

Maxim Kovalchuk in GraphQL — русскоговорящее сообщество
Andrey Nikolaev
а как контекст готовите?
@Subscription(() => NotificationType, {
   topics: 'ADDED_ORDER_NOTIFICATION',
   filter: ({
     args,
     context,
   }: ResolverFilterData<INotificationPayload, AddedOrderArgs, Context>) =>
     args.userId !== context.req.session!.user.id,
 })
 async addedOrder(
   @Root() notificationPayload: INotificationPayload,
   @Args() {userId}: AddedOrderArgs
 ): Promise<NotificationType> {
   return {
     ...notificationPayload,
   };
 }
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
имею в виду как вы контекст создаете в настройках graphql
источник

MK

Maxim Kovalchuk in GraphQL — русскоговорящее сообщество
Andrey Nikolaev
имею в виду как вы контекст создаете в настройках graphql
context: ({ req, res }: any) => ({ req, res })
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
Maxim Kovalchuk
context: ({ req, res }: any) => ({ req, res })
там есть третий параметр connection - если он присутствует, то контекст нужно брать их него как connection.context
источник

MK

Maxim Kovalchuk in GraphQL — русскоговорящее сообщество
Andrey Nikolaev
там есть третий параметр connection - если он присутствует, то контекст нужно брать их него как connection.context
Как то так будет ?
context: ({ req, res, connection }) => {
     if (connection) {
       return connection.context;
     }
     
     return { req, res };
   }
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
Maxim Kovalchuk
Как то так будет ?
context: ({ req, res, connection }) => {
     if (connection) {
       return connection.context;
     }
     
     return { req, res };
   }
да
источник

MK

Maxim Kovalchuk in GraphQL — русскоговорящее сообщество
А в сабскрипшине как его получить ?
источник

Selami Şahin in GraphQL — русскоговорящее сообщество
Why did you delete my message
?
источник

D

Den in GraphQL — русскоговорящее сообщество
Ребят, всем привет, подскажите, есть Query { get: MyData }, допустим type MyData {
id: ID
},
но в резолвере Я возвращаю допустим return { id: 1, foo: "bar" },

все работает, графкюл фильтрует foo, но вот вопрос, где фильтрует, случаем никак с сервера нельзя его сфетчить? К примеру если foo это приватные данные
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Maxim Kovalchuk
А в сабскрипшине как его получить ?
В request он тоже есть. Просто по другому пути, весь объект console.log
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Там будет
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
Maxim Kovalchuk
А в сабскрипшине как его получить ?
так же как вы и получали filter: ({ context })
если не прокатило и у вас аполло-сервер, то попробуйте при билде контекста заменить условие на if (!req || !req.headers)
источник

MK

Maxim Kovalchuk in GraphQL — русскоговорящее сообщество
Andrey Nikolaev
так же как вы и получали filter: ({ context })
если не прокатило и у вас аполло-сервер, то попробуйте при билде контекста заменить условие на if (!req || !req.headers)
Ни со старым, ни с новым условием не сработало
Сервер аполло
источник

MK

Maxim Kovalchuk in GraphQL — русскоговорящее сообщество
Олег Линьков
В request он тоже есть. Просто по другому пути, весь объект console.log
Имел в виду в filter
источник

MK

Maxim Kovalchuk in GraphQL — русскоговорящее сообщество
Олег Линьков
В request он тоже есть. Просто по другому пути, весь объект console.log
А не в самом сабскрипшине
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
Maxim Kovalchuk
Ни со старым, ни с новым условием не сработало
Сервер аполло
тогда у меня закончились варианты
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
Maxim Kovalchuk
Ни со старым, ни с новым условием не сработало
Сервер аполло
хотя можно еще попробовать комбинацию subscribe + withFilter вместо topics и filter
источник

MK

Maxim Kovalchuk in GraphQL — русскоговорящее сообщество
Andrey Nikolaev
хотя можно еще попробовать комбинацию subscribe + withFilter вместо topics и filter
Ну да
Если и это не поможет, то тогда только айди через паблиш в сабскрипшин прокидывать из самой мутации
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
Den
Ребят, всем привет, подскажите, есть Query { get: MyData }, допустим type MyData {
id: ID
},
но в резолвере Я возвращаю допустим return { id: 1, foo: "bar" },

все работает, графкюл фильтрует foo, но вот вопрос, где фильтрует, случаем никак с сервера нельзя его сфетчить? К примеру если foo это приватные данные
никак нельзя получить то чего нет в graphql-схеме
источник

D

Den in GraphQL — русскоговорящее сообщество
Andrey Nikolaev
никак нельзя получить то чего нет в graphql-схеме
Спасибо!
источник