Как разрешить список, разделенный некоторым вложенным свойством на своих дочерних элементах?

#javascript #graphql #apollo

#javascript #graphql #apollo

Вопрос:

У меня есть Teacher тип, который выглядит следующим образом:

   type Teacher {
    id: ID!
    name: String
    reservations: [Applicant],
    reservations_by_day: {
      monday: [Applicant]
      tuesday: [Applicant]
      wednesday: [Applicant]
      thursday: [Applicant]
    }
  }
  

это Applicant тип:

   type Applicant {
    id: ID!
    code: String
    name: String
    option: Option!
  }
  

И это Option тип:

   type Option {
    id: ID!
    teacher: String
    time: String
    day: String
    workshop: Workshop!
  }
  

В основном я хочу разрешить reservations_by_day в зависимости от дня, который выбрал заявитель. Как я мог бы закодировать свой распознаватель для достижения этой цели? Принимая во внимание, что day prop вложен в другие вещи:

 {
  Applicant {
    Option {
      day
    }
  }
}
  

Распознаватели учителей

   Teacher: {
    options: (obj) =>
      db.options.filter((option) => option.teacher_id === obj.id),
    reservations: (obj) =>
      db.applicants.filter((applicant) =>
        new RegExp(obj.id).test(applicant.option_id)
      ),
      reservations_by_day: {
        monday: () => [],
        tuesday: () => [],
        wednesday: () => [],
        thursday: () => [],
      }
  }
  

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

1. Пожалуйста, покажите нам существующий код для ваших Teacher распознавателей

2. Я отредактировал свой ответ. В принципе, у меня пока ничего reservations_by_day нет, потому что я даже не знаю, с чего начать

3. Спасибо. Вы бы просто использовали db.applicatants.filter снова, нет? В чем именно проблема?

4. Я немного смущен, хотя почему у вас Teacher есть options распознаватель, но нет options поля в схеме. Также почему Teacher.applicants фильтруются по an option_id ? И почему вы используете для этого регулярные выражения?