Skip to content

Commit

Permalink
Merge pull request #127 from bcgov/filterschoollist
Browse files Browse the repository at this point in the history
removed summer and fed band schools from list
  • Loading branch information
michaeltangbcgov authored Nov 24, 2023
2 parents e578f60 + 414dd9b commit 1cd9890
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
13 changes: 11 additions & 2 deletions backend/src/components/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -242,15 +242,24 @@ 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();

return data.filter(item => {
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) {
Expand Down Expand Up @@ -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};
module.exports = {filterByOpenedAndClosedDate, filterByPubliclyAvailableCodes, getArrayofPubliclyAvailableCodes, filterByExpiryDate, filterRemoveByField,filterIncludeByField, sortByProperty,getArrayofNonPubliclyAvailableCodes,filterByField,appendMailingAddressDetailsAndRemoveAddresses,sortJSONBySchoolCode,sortJSONByDistrictNumber,normalizeJsonObject, removeFieldsByCriteria, createList, isSafeFilePath,isAllowedSchoolCategory, addDistrictLabels, districtNumberSort, createSchoolCache, formatGrades, rearrangeAndRelabelObjectProperties};
12 changes: 8 additions & 4 deletions backend/src/routes/institute-router.js
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 1cd9890

Please sign in to comment.