Skip to content

Commit

Permalink
fixed syntax error
Browse files Browse the repository at this point in the history
  • Loading branch information
shaunlumbcgov committed Nov 17, 2023
1 parent 2db8229 commit 962b929
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 10 deletions.
10 changes: 9 additions & 1 deletion backend/src/components/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,14 @@ function addDistrictLabels(jsonData, districtList) {

return filteredArray;
}
function filterByExpiryDate(data) {
const currentDate = new Date();

return data.filter(item => {
const expiryDate = item.expiryDate ? new Date(item.expiryDate) : null;
return expiryDate === null || currentDate < expiryDate;
});
}
function getArrayofNonPubliclyAvailableCodes(codes, field) {
if (!Array.isArray(codes)) {
throw new Error('Invalid input. Expecting an array of objects.');
Expand Down Expand Up @@ -353,4 +361,4 @@ function addDistrictLabels(jsonData, districtList) {
return school;
});
}
module.exports = {filterRemoveByField, sortByProperty,getArrayofNonPubliclyAvailableCodes,filterByField,appendMailingAddressDetailsAndRemoveAddresses,sortJSONBySchoolCode,sortJSONByDistrictNumber,normalizeJsonObject, removeFieldsByCriteria, createList, isSafeFilePath,isAllowedSchoolCategory, addDistrictLabels, districtNumberSort, createSchoolCache, formatGrades, rearrangeAndRelabelObjectProperties};
module.exports = {filterByExpiryDate, filterRemoveByField, sortByProperty,getArrayofNonPubliclyAvailableCodes,filterByField,appendMailingAddressDetailsAndRemoveAddresses,sortJSONBySchoolCode,sortJSONByDistrictNumber,normalizeJsonObject, removeFieldsByCriteria, createList, isSafeFilePath,isAllowedSchoolCategory, addDistrictLabels, districtNumberSort, createSchoolCache, formatGrades, rearrangeAndRelabelObjectProperties};
41 changes: 36 additions & 5 deletions backend/src/routes/district-router.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const fs = require("fs");
const path = require("path");
const { checkToken } = require("../components/auth");
const { listCache } = require("../components/cache");
const {filterRemoveByField, getArrayofNonPubliclyAvailableCodes, filterByField,appendMailingAddressDetailsAndRemoveAddresses, rearrangeAndRelabelObjectProperties, addDistrictLabels, normalizeJsonObject, sortJSONByDistrictNumber, removeFieldsByCriteria} = require("../components/utils.js")
const {filterRemoveByField, filterByExpiryDate, getArrayofNonPubliclyAvailableCodes, filterByField,appendMailingAddressDetailsAndRemoveAddresses, rearrangeAndRelabelObjectProperties, addDistrictLabels, normalizeJsonObject, sortJSONByDistrictNumber, removeFieldsByCriteria} = require("../components/utils.js")

//Batch Routes
router.get("/all-contacts", checkToken, getAllDistrictContacts);
Expand Down Expand Up @@ -109,9 +109,33 @@ function removeContacts(districtDataResponse, nonPublicContactTypeCodes) {
async function getAllDistrictContacts(req, res) {
const districtList = await listCache.get("districtlist")
const contactTypeCodes= await listCache.get("codesList")
const url = await `${config.get(
"server:instituteAPIURL"
)}/institute/district/contact/paginated?pageSize=4000`
let currentDate = new Date().toISOString().substring(0, 19)
const params = [
{
condition: null,
searchCriteriaList: [
{
key: 'expiryDate',
operation: 'eq',
value: null,
valueType: 'STRING',
condition: 'OR'
},
{
key: 'expiryDate',
operation: 'gte',
value: currentDate,
valueType: 'DATE_TIME',
condition: 'OR'
}
]
}
];
const jsonString = JSON.stringify(params);
const encodedParams = encodeURIComponent(jsonString);
const url = await `${config.get(
"server:instituteAPIURL"
)}/institute/district/contact/paginated?pageSize=4000&searchCriteriaList=${encodedParams}`
try {
const districtContactResponse = await axios.get(url, {
headers: { Authorization: `Bearer ${req.accessToken}` },
Expand All @@ -127,6 +151,8 @@ async function getAllDistrictContacts(req, res) {
{ property: "phoneNumber", label: "Contact Phone" },
{ property: "phoneExtension", label: "Contact Phone Extension" },
{ property: "email", label: "Contact Email" },
{ property: "effective", label: "Effective Date" },
{ property: "expiryDate", label: "Expiry Date" },
];

//let content = addDistrictLabels(districtContactResponse.data,districtList);
Expand Down Expand Up @@ -244,7 +270,8 @@ async function getDistrict(req, res) {
value: null,
valueType: "STRING",
condition: "AND",
},
},

{
key: "facilityTypeCode",
operation: "neq",
Expand Down Expand Up @@ -273,7 +300,9 @@ async function getDistrict(req, res) {
const districtSchoolsResponse = await axios.get(districtSchoolsUrl, {
headers: { Authorization: `Bearer ${req.accessToken}` },
});

const contactTypeCodes = await getDistrictCodes(req);

const nonPublicContactTypeCodes = getNonPublicContactTypeCodes(contactTypeCodes);
const districtDataPublic = removeContacts(
districtDataResponse.data,
Expand All @@ -283,6 +312,8 @@ async function getDistrict(req, res) {
districtDataPublic,
contactTypeCodes
);
districtDataPublicWithLabels.contacts = filterByExpiryDate(districtDataPublicWithLabels.contacts)


const districtJSON = {
districtData: districtDataPublicWithLabels,
Expand Down
4 changes: 2 additions & 2 deletions backend/src/routes/institute-router.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const { checkToken } = require("../components/auth");
const {removeFieldsByCriteria, createList, addDistrictLabels, districtNumberSort, isAllowedSchoolCategory } = 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"], fieldToInclude: "closedDate", 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 openSchoolListOptions = { fields: [
Expand Down Expand Up @@ -129,7 +129,7 @@ async function getAuthorityList(req, res) {
},
{
key: 'closedDate',
operation: 'lte',
operation: 'gte',
value: currentDate,
valueType: 'DATE_TIME',
condition: 'OR'
Expand Down
6 changes: 4 additions & 2 deletions frontend/src/views/DistrictView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ const contactHeaders = [
{ title: 'Last Name', key: 'lastName' },
{ title: 'Phone', key: 'phoneNumber' },
{ title: 'Extension', key: 'phoneExtension' },
{ title: 'Email', key: 'email' }
{ title: 'Email', key: 'email' },
{ title: 'expiryDate', key: 'Expired' }
]
const schoolHeaders = [
{ title: 'School Name', key: 'displayName' },
Expand Down Expand Up @@ -155,7 +156,8 @@ onMounted(async () => {
mailingPostalCode: response.data.districtData?.addresses[0].postal,
districtPhone: response.data.districtData?.phoneNumber,
districtFax: response.data.districtData?.faxNumber,
website: response.data.districtData?.website
website: response.data.districtData?.website,
expiryDate: item.expiryDate
}
})
}
Expand Down

0 comments on commit 962b929

Please sign in to comment.