Adri V.
08/05/2020, 3:08 PMconst filterSuggestions = async (_, { input }, { db, me, utils }) => {
try {
if (!input.archived) {
input.archived = false;
}
return await db.suggestion.findMany({
where: {
AND: [
{ status: input.status },
{ category: input.category },
{ priority: input.priority },
{ archived: input.archived }
]
}
});
So far, as you can see only if input contains a valid value for all of the filter options it will work. Is there a way to implement it correctly?Richard Ward
08/05/2020, 3:56 PMAND: [
...(input.status && { status: input.status }),
]
Richard Ward
08/05/2020, 6:15 PMconst filterSuggestions = async (_, { input }, { db, me, utils }) => {
try {
if (!input.archived) {
input.archived = false;
}
return await db.suggestion.findMany({
where: {
AND: [
...(input.status && { status: input.status }),
...(input.category && { category: input.category }),
...(input.priority && { priority: input.priority }),
...(input.archived && { archived: input.archived )}
]
}
});
Richard Ward
08/05/2020, 6:18 PMconst filterSuggestions = async (_, { input }, { db, me, utils }) => {
try {
if (!input.archived) {
input.archived = false;
}
const queryAnd = [];
if(input.status) {
queryParams.push({status: input.status})
}
if(input.category) {
queryParams.push({category: input.category})
}
//etc for the other params
return await db.suggestion.findMany({
where: {
AND: queryAnd
}
});