Size: a a a

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

2019 June 28

AT

Anton Taraev in GraphQL — русскоговорящее сообщество
Anton Taraev
Мы так делали

directive @hasRole(role: Role!) on FIELD_DEFINITION

enum Role {
 ADMIN
 USER
}

type Query {
 tasks: [Task!]! @hasRole(ADMIN)
 task(id: ID!): Task!
 widgets: [Widget!]!
}
вот так ошибка возвращается
{
 "errors": [
   {
     "message": "Access denied",
     "path": [
       "tasks"
     ]
   }
 ],
 "data": null
}
источник

A

Alex in GraphQL — русскоговорящее сообщество
Anton Taraev
вот так ошибка возвращается
{
 "errors": [
   {
     "message": "Access denied",
     "path": [
       "tasks"
     ]
   }
 ],
 "data": null
}
отлично, то что нужно. Спасибо
источник

AT

Anton Taraev in GraphQL — русскоговорящее сообщество
Alex
отлично, то что нужно. Спасибо
можно даже так
type Widget {
 id: Int!
 name: String! @hasRole(role: ADMIN)
 dep_ref: String!
}
источник

MS

Misha Shandra in GraphQL — русскоговорящее сообщество
всем привет, мне нужно что бы при создании таблицы  'пользовател' автоматически создавалась и таблица 'теги' с несколькими стандартными тегами. Я хотела сделать 2 таблицы для тегов и в коде сначала вытаскивать стандартные теги а потом добавлять их к тегам етого пользователя, может есть какоето другое решение?
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Misha Shandra
всем привет, мне нужно что бы при создании таблицы  'пользовател' автоматически создавалась и таблица 'теги' с несколькими стандартными тегами. Я хотела сделать 2 таблицы для тегов и в коде сначала вытаскивать стандартные теги а потом добавлять их к тегам етого пользователя, может есть какоето другое решение?
если стандартные теги будут меняться - то да, все надо хранить в бд, но можно в той же таблице где и остальные, но с флагом "useAsDefault". Если теги всегда одни и теже - можно просто в код забить
источник

AT

Anton Taraev in GraphQL — русскоговорящее сообщество
Uxname
если стандартные теги будут меняться - то да, все надо хранить в бд, но можно в той же таблице где и остальные, но с флагом "useAsDefault". Если теги всегда одни и теже - можно просто в код забить
А что за база?
источник

MS

Misha Shandra in GraphQL — русскоговорящее сообщество
Anton Taraev
А что за база?
Ну я на hasura сейчас рвботаю, база на постгри наверное
источник

AT

Anton Taraev in GraphQL — русскоговорящее сообщество
Misha Shandra
Ну я на hasura сейчас рвботаю, база на постгри наверное
Сделай 3 таблицы, одна с пользователями
одна с тегами
И таблицу связей (is, user_id, tag_is, type)
Type: enum
-default
-standard
- и тд
источник

MS

Misha Shandra in GraphQL — русскоговорящее сообщество
Anton Taraev
Сделай 3 таблицы, одна с пользователями
одна с тегами
И таблицу связей (is, user_id, tag_is, type)
Type: enum
-default
-standard
- и тд
А меня еще интересует как сделать дефолтными значение  с таблицы стандартных значений
источник

VS

Vladyslav Siroshtan in GraphQL — русскоговорящее сообщество
Вопрос для тех, кто юзает hasura.
Вы не придумали как расставить описание сущностей ?
А то у них там comment не работает.
источник
2019 June 29

g

graphql_bot in GraphQL — русскоговорящее сообщество
graphql/graphql-js v14.4.0 → v14.4.1 🎉
источник

R

Revival in GraphQL — русскоговорящее сообщество
Apollo client.
Не получается запустить @client query resolver, если есть inital cache data добавленная с помощью writeData. В чем может быть проблема?

https://codesandbox.io/s/quizzical-golick-o4mez
источник

GS

Gleb Smagliy in GraphQL — русскоговорящее сообщество
Revival
Apollo client.
Не получается запустить @client query resolver, если есть inital cache data добавленная с помощью writeData. В чем может быть проблема?

https://codesandbox.io/s/quizzical-golick-o4mez
Дело в том, что с @client полями логика такая же, как и с remote - то есть есть в кэше - отдаем, нет в кэше - вызываем локальный резолвер. Если хочется всегда вызывать резолвер - то нужно явно это указать: @client(always: true) (https://www.apollographql.com/docs/react/essentials/local-state/#forcing-resolvers-with-clientalways-true).
В конкретном случае с логином, пожалуй, проще и производительнее просто на успешный логин записывать новое значение в кэш.
источник

M

Miras in GraphQL — русскоговорящее сообщество
Uxname
эх, надеялся что в личке будешь спрашивать, тут призму не любят) а мне понравилась, получилось быстро сделать. Производительность конечно хуже чем через просто pg, но для маркетплейса хватало. Всё что нужно было оч быстро загружать - кешировалось в redis, почти вся изнес логика легла на фронта (из-за graphql), на бэке я только права расставил через graphql-shield, Могу по скайпу подробнее чуть что.
Маркетплейс делал на основе своего же бойлерплейта, всё основное в нём есть, посмотреть можно тут
https://gitlab.com/uxname/uxbackend
Ссылка стала нерабочей
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Miras
Ссылка стала нерабочей
да, переехал на гитхаб
источник

M

Miras in GraphQL — русскоговорящее сообщество
Благодарю
источник
2019 June 30

П

Павел in GraphQL — русскоговорящее сообщество
парни подскажите
в определении для apollo
const typeDefs = gql`
 type Query {
   users(start: Int, offset: Int): [User!]!
   user(id: ID!): User!
   post(id: ID!): Post!
   posts(creatorId: ID): [Post!]!
 }
 type User {
   id: ID!
   name: String!
   email: String!
   age: Int
   posts: [Post]
 }
 type Post {
   id: ID!
   title: String!
   content: String!
   date: String!
   creatorId: Int!
 }
как то можно сказать что при запросе Post  можно получить какие либо данные о User ?
источник

A

Alex in GraphQL — русскоговорящее сообщество
type Post {
   id: ID!
   title: String!
   content: String!
   date: String!
   creatorId: Int!
   creator: User
 }
источник

П

Павел in GraphQL — русскоговорящее сообщество
Alex
type Post {
   id: ID!
   title: String!
   content: String!
   date: String!
   creatorId: Int!
   creator: User
 }
а поля также разные из User можно будет запросить?
источник

A

Alex in GraphQL — русскоговорящее сообщество
да, для этого надо отдельный резолвер сделать для поста
источник