Как фильтровать по нескольким элементам с помощью фильтра поиска в GrapQL / Typescript

#angular #typescript #graphql #graphql-js

Вопрос:

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

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

   let searchFilter:SearchableJobFilterInput = {
    or: [
      {
        categoryID: {
          matchPhrasePrefix: form.category
        },
        title : {
          matchPhrasePrefix: form.title
        }
      }
    ],

    
  };


  this.API.SearchJobs(searchFilter).then((searchedJobs: SearchJobsQuery) => {
    if(searchedJobs != null)
    {
      this.jobs = searchedJobs.items;
      this.changeDetection.detectChanges();
      console.log(this.jobs);
    }
    else {
      console.log('No Data for Filtered Jobs!')
    }
  })
}
 

Я использую неправильные функции? Разве поиск не является тем, что мне нужно? Или есть какой-нибудь другой/лучший способ поиска?

Комментарии:

1. если запрос протестирован на игровой площадке (вы должны сделать это перед кодированием) [для разных случаев использования], то вы должны знать, как должен выглядеть arg/переменная … построение ее по коду-это проще простого

2. Спасибо за ваш ответ. К сожалению, я не понимаю, как может выглядеть запрос, потому что, если в одном элементе нет текста для фильтрации, он все равно фильтруется впустую, и это приводит к сбою…

3. играйте с API на игровой площадке, возвращайтесь со знаниями и показывайте примеры

4. Фильтр должен быть отключен или проигнорирован, если значение пустое. Но как? Есть ли какая-либо возможность сделать это в Graphql?

5. просто не передавайте его (переменный объект) — но еще раз … протестируйте его на детской площадке