From 414dd9bd085f102373573f61358c8803376bc922 Mon Sep 17 00:00:00 2001 From: Shaun Lum Date: Fri, 24 Nov 2023 13:43:25 -0800 Subject: [PATCH] removed summer and fed band schools from list --- backend/src/components/utils.js | 13 +++++++++++-- backend/src/routes/institute-router.js | 12 ++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/backend/src/components/utils.js b/backend/src/components/utils.js index 070131a..aaf0e63 100644 --- a/backend/src/components/utils.js +++ b/backend/src/components/utils.js @@ -242,7 +242,16 @@ function addDistrictLabels(jsonData, districtList) { return filteredArray; } + function filterByOpenedAndClosedDate(data){ + const currentDate = new Date(); + return data.filter(item => { + const closedDate = item.closedDate ? new Date(item.closedDate) : null; + const openedDate = item.openedDate ? new Date(item.openedDate) : null; + + return (closedDate === null && currentDate > openedDate) || (currentDate < closedDate && currentDate > openedDate) ; + }); + } function filterByExpiryDate(data) { const currentDate = new Date(); @@ -250,7 +259,7 @@ function addDistrictLabels(jsonData, districtList) { const expiryDate = item.expiryDate ? new Date(item.expiryDate) : null; const effectiveDate = item.effectiveDate ? new Date(item.effectiveDate) : null; - return expiryDate === null && currentDate > effectiveDate || currentDate < expiryDate && currentDate > effectiveDate ; + return (expiryDate === null && currentDate > effectiveDate) || (currentDate < expiryDate && currentDate > effectiveDate) ; }); } function getArrayofNonPubliclyAvailableCodes(codes, field) { @@ -368,4 +377,4 @@ function addDistrictLabels(jsonData, districtList) { return school; }); } - module.exports = {filterByPubliclyAvailableCodes, getArrayofPubliclyAvailableCodes, filterByExpiryDate, filterRemoveByField,filterIncludeByField, sortByProperty,getArrayofNonPubliclyAvailableCodes,filterByField,appendMailingAddressDetailsAndRemoveAddresses,sortJSONBySchoolCode,sortJSONByDistrictNumber,normalizeJsonObject, removeFieldsByCriteria, createList, isSafeFilePath,isAllowedSchoolCategory, addDistrictLabels, districtNumberSort, createSchoolCache, formatGrades, rearrangeAndRelabelObjectProperties}; \ No newline at end of file + module.exports = {filterByOpenedAndClosedDate, filterByPubliclyAvailableCodes, getArrayofPubliclyAvailableCodes, filterByExpiryDate, filterRemoveByField,filterIncludeByField, sortByProperty,getArrayofNonPubliclyAvailableCodes,filterByField,appendMailingAddressDetailsAndRemoveAddresses,sortJSONBySchoolCode,sortJSONByDistrictNumber,normalizeJsonObject, removeFieldsByCriteria, createList, isSafeFilePath,isAllowedSchoolCategory, addDistrictLabels, districtNumberSort, createSchoolCache, formatGrades, rearrangeAndRelabelObjectProperties}; \ No newline at end of file diff --git a/backend/src/routes/institute-router.js b/backend/src/routes/institute-router.js index a3f5fc8..2425ea6 100644 --- a/backend/src/routes/institute-router.js +++ b/backend/src/routes/institute-router.js @@ -5,12 +5,12 @@ const config = require("../config/index"); const axios = require("axios"); const { checkToken } = require("../components/auth"); -const {formatGrades, removeFieldsByCriteria, createList, addDistrictLabels, districtNumberSort, isAllowedSchoolCategory, filterRemoveByField } = require("../components/utils"); +const {filterByOpenedAndClosedDate, formatGrades, removeFieldsByCriteria, createList, addDistrictLabels, districtNumberSort, isAllowedSchoolCategory, filterRemoveByField, filterByField } = require("../components/utils"); const { listCache, codeCache } = require("../components/cache"); -const schoolListOptions = { fields: ["mincode", "displayName", "schoolId", "closedDate"], fieldToInclude: "closedDate", valueToInclude: null, sortField: "mincode" }; +const schoolListOptions = { fields: ["mincode", "displayName", "schoolId", "closedDate", "openedDate","schoolCategoryCode"], fieldToInclude: null, valueToInclude: null, sortField: "mincode" }; const districtListOptions = { fields: ["displayName", "districtId","districtNumber", "closedDate"] ,fieldToInclude: "districtStatusCode", valueToInclude: "ACTIVE", sortField: "districtNumber"}; -const authorityListOptions = { fields: ["displayName", "authorityNumber","independentAuthorityId", "closedDate"], sortField: "authorityNumber" }; +const authorityListOptions = { fields: ["displayName", "authorityNumber","independentAuthorityId", "closedDate", "opendDate"], sortField: "authorityNumber" }; const openSchoolListOptions = { fields: [ "schoolId", "districtId", @@ -394,11 +394,15 @@ async function getCategoryCodes(req, res) { } async function getSchoolList(req, res) { if (await !listCache.has("schoollist")) { + console.log("NEW LIST") const url = `${config.get("server:instituteAPIURL")}/institute/school`; // Update the URL according to your API endpoint axios .get(url, { headers: { Authorization: `Bearer ${req.accessToken}` } }) .then((response) => { - const schoolList = createList(response.data, schoolListOptions); + const openSchools = filterByOpenedAndClosedDate(response.data) + const validSchools = filterByField(openSchools, "schoolCategoryCode", ["SUMMER", "FED_BAND"]) + + const schoolList = createList(validSchools, schoolListOptions); res.json(schoolList); listCache.set("schoollist", schoolList); log.info(req.url);