From 178665e72e1b8901a336e9c2303ec6bd40fd6ed2 Mon Sep 17 00:00:00 2001 From: Shaelyn Tolkamp Date: Tue, 5 Mar 2024 16:01:56 -0800 Subject: [PATCH] [EPICSYSTEM-23] Pcp feed, add dateUpdated filter to search --- api/helpers/aggregators.js | 72 +++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 29 deletions(-) diff --git a/api/helpers/aggregators.js b/api/helpers/aggregators.js index f163984..38b248f 100644 --- a/api/helpers/aggregators.js +++ b/api/helpers/aggregators.js @@ -261,38 +261,48 @@ const generateExpArray = async (field, roles, schemaName) => { } switch (item) { - case 'decisionDateStart': - for(let field of fields) { - handleDateStartItem(orArray, field, decodeURIComponent(entry)); - } - break; - case 'decisionDateEnd': - for(let field of fields) { - handleDateEndItem(orArray, field, decodeURIComponent(entry)); - } - break; - case 'dateAddedStart': - handleDateStartItem(orArray, ['dateAdded'], decodeURIComponent(entry)); - break; - case 'dateAddedEnd': - handleDateEndItem(orArray, ['dateAdded'], decodeURIComponent(entry)); - break; - case 'datePostedStart': - handleDateStartItem(orArray, ['datePosted'], decodeURIComponent(entry)); - break; - case 'datePostedEnd': - handleDateEndItem(orArray, ['datePosted'], decodeURIComponent(entry)); - break; - default: - if (schemaName === constants.PROJECT) { - for(let field of fields) { - orArray.push(getConvertedValue(field, decodeURIComponent(entry))); + case 'dateUpdatedStart': + for (let field of fields) { + handleDateStartItem(orArray, field, decodeURIComponent(entry)); } break; - } else { - orArray.push(getConvertedValue(fields[0], decodeURIComponent(entry))); + case 'dateUpdatedEnd': + for (let field of fields) { + handleDateEndItem(orArray, field, decodeURIComponent(entry)); + } break; - } + case 'decisionDateStart': + for (let field of fields) { + handleDateStartItem(orArray, field, decodeURIComponent(entry)); + } + break; + case 'decisionDateEnd': + for (let field of fields) { + handleDateEndItem(orArray, field, decodeURIComponent(entry)); + } + break; + case 'dateAddedStart': + handleDateStartItem(orArray, ['dateAdded'], decodeURIComponent(entry)); + break; + case 'dateAddedEnd': + handleDateEndItem(orArray, ['dateAdded'], decodeURIComponent(entry)); + break; + case 'datePostedStart': + handleDateStartItem(orArray, ['datePosted'], decodeURIComponent(entry)); + break; + case 'datePostedEnd': + handleDateEndItem(orArray, ['datePosted'], decodeURIComponent(entry)); + break; + default: + if (schemaName === constants.PROJECT) { + for (let field of fields) { + orArray.push(getConvertedValue(field, decodeURIComponent(entry))); + } + break; + } else { + orArray.push(getConvertedValue(fields[0], decodeURIComponent(entry))); + break; + } } expArray.push({ $or: orArray }); @@ -317,6 +327,10 @@ const handleProjectTerms = (item) => { item = 'decisionDate'; } + if (item === 'dateUpdatedStart' || item === 'dateUpdatedEnd') { + item = 'dateUpdated'; + } + // prepend for embedded fields let legislations = ['legislation_1996', 'legislation_2002', 'legislation_2018']; for (let legis of legislations) {