Добавление нескольких опций по отношению к одному столбцу в GraphQL - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь сделать запрос, в котором я могу добавить фильтры с несколькими параметрами. В настоящее время у меня есть этот запрос

query FacilitiesQuery(
    $limit: Int
    $offset: Int
    $query: String
    $sort: [facilities_order_by!]
  ) {
    facilities(
      limit: $limit
      offset: $offset
      where: {
        _or: [
          { name: { _ilike: $query } },
          { location: { _ilike: $query } },
        ]
        _and: [
          { deleted_at: { _is_null: true } },
          { status_id: { _eq: 1 } }
        ]
      }
      order_by: $sort
    ) {
      id
      location
      name
      status_id
      updated_at
      created_at
      area
      floor
      handover_condition
      handover_meter
      handover_office
      lcd
      level
      move_in_date
      rcd
      company_id
      deleted_at
      expiry_date
      area_type
      building_name
      enum_area_type {
        id
        name
      }
    }
    enum_facility_statuses {
      id
      value
    }
    facilities_aggregate(where: { deleted_at: { _is_null: true } }) {
      aggregate {
        count
      }
    }
  }

Я пытаюсь сделать запрос по status_id. Я пытаюсь реализовать фильтр на внешнем интерфейсе, который может получить все отмеченные опции, основанные на модальном с флажком.

Например, я хочу получить записи с status_id 1 и 2, я ищу что-то вот так

_and: [
  { deleted_at: { _is_null: true } },
  { status_id: { _eq: [1,2] } }
]

Но я не могу их выполнить. Мне нужна помощь в изменении этого запроса таким образом.

1 Ответ

0 голосов
/ 28 апреля 2020

В вашем запросе вам нужно указать правильный тип, автоматически сгенерированный Hasura. В консоли Hasura, вкладка GraphiQL, есть вкладка проводника документации. Там вы можете увидеть типы, сгенерированные Hasura для каждого запроса.

HasuraQueryExplorer

Вам нужно будет проверить свою консоль Hasura, но ваш запрос должен быть чем-то как:

query FacilitiesQuery(
    $limit: Int
    $offset: Int
    $where: facilities_bool_exp!
    $sort: [facilities_order_by!]
  ) {
    facilities(
      limit: $limit
      offset: $offset
      where: $where
      }
      order_by: $sort
    ) {
      id
      location
      name
      status_id
      updated_at
      created_at
      area
      floor
      handover_condition
      handover_meter
      handover_office
      lcd
      level
      move_in_date
      rcd
      company_id
      deleted_at
      expiry_date
      area_type
      building_name
      enum_area_type {
        id
        name
      }
    }
    enum_facility_statuses {
      id
      value
    }
    facilities_aggregate(where: { deleted_at: { _is_null: true } }) {
      aggregate {
        count
      }
    }
  }

, и вы можете построить, где это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...