Я создал следующий распознаватель для фильтрации моих клиентов по паре аргументов. Он работает нормально, но, используя его, я должен указать во внешнем интерфейсе тип аргумента, который я ищу, например firstName
. Мне интересно, есть ли способ иметь случайный случай, давайте назовем его searchInput
, и содержание этого может быть одним из аргументов, которые я ищу сейчас.
Так, например, George
может быть имя и фамилия в то же время, и когда я набираю George
, я хочу вернуть объекты, которые содержат это имя, в firstName
, lastName
или email
Вот мой распознаватель
import StageOne from "../../models/StageOne";
import { requireAuth } from "../../services/auth";
export default {
// Queries
searchClients: async (_, { input: { firstName, lastName, phone, email } }, { user }) => {
try {
await requireAuth(user);
const where = {}
if (firstName) {
where.firstName = firstName
}
if (lastName) {
where.lastName = lastName
}
if (phone) {
where.phone = phone
}
if (email) {
where.email = email
}
const results = await StageOne.find(where).collation(
{ locale: 'en', strength: 2 }
)
return results
} catch (error) {
throw error;
}
}
}