dmw preliminary work

This commit is contained in:
2025-03-27 11:02:32 +00:00
parent 93f385e0b0
commit a09c458aed
4 changed files with 118 additions and 16 deletions
+73 -1
View File
@@ -21,6 +21,70 @@ const hashAPIPath = (queryPath) => {
return (queryPath.indexOf("?") > -1 ? "&hash=" : "?hash=") + hashlink;
};
const renameKeys = (obj) => {
const keyMappings = {
"pinswg_projectlocation": "location",
"pinswg_mapzoomlevel": "zoomLevel",
"pinswg_name": "projectName",
"pinswg_anticipatedgridreferenceeastingtext": "easting",
"pinswg_anticipatedgridreferencenorthingtext": "northing",
"pinswg_anticipatedgridrefeasting": "easting",
"pinswg_anticipatedgridrefnorthing": "northing",
"pinswg_projectname": "projectTitle",
"pinswg_dnsid": "dnsId",
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue":
"lpaDisplayName",
"_pinswg_associatedlpa_value": "lpaId",
"_pinswg_appellant_value@OData.Community.Display.V1.FormattedValue":
"appellantDisplayName",
"_pinswg_appellant_value": "appellantId",
"zoom": "mapZoom",
"center": "locationCenter",
};
let renamedObj = {};
Object.keys(obj).forEach((key) => {
// Skip keys that need to be removed
if (keysToRemove.includes(key)) {
return;
}
// Check if the key exists in the mapping
if (keyMappings[key]) {
renamedObj[keyMappings[key]] = obj[key];
} else {
renamedObj[key] = obj[key];
}
});
// Recursively rename keys in nested objects
if (obj.center) {
renamedObj.locationCenter = {
lat: obj.center.lat,
lng: obj.center.lng,
};
}
if (renamedObj.easting) {
renamedObj.easting = String(renamedObj.easting);
}
if (renamedObj.northing) {
renamedObj.northing = String(renamedObj.northing);
}
return renamedObj;
};
const keysToRemove = [
"_pinswg_associatedlpa_value@Microsoft.Dynamics.CRM.associatednavigationproperty",
"_pinswg_appellant_value@Microsoft.Dynamics.CRM.associatednavigationproperty",
"_pinswg_associatedlpa_value@Microsoft.Dynamics.CRM.lookuplogicalname",
"_pinswg_appellant_value@Microsoft.Dynamics.CRM.lookuplogicalname",
"pinswg_anticipatedgridrefeasting@OData.Community.Display.V1.FormattedValue",
"pinswg_anticipatedgridrefnorthing@OData.Community.Display.V1.FormattedValue",
// Add any other keys to remove here
];
export default async function ApiProxy(req, res) {
var token = await getToken();
@@ -90,7 +154,15 @@ export default async function ApiProxy(req, res) {
});
// Send the merged values as the response
return res.status(200).json(coordsObj);
const updatedData = {
value: coordsObj.value.map((item) => renameKeys(item)),
"@odata.count": coordsObj["@odata.count"],
};
return req.query.hasOwnProperty("fordmw")
? res.status(200).json(updatedData)
: res.status(200).json(coordsObj);
} catch (error) {
// Catch any errors and send an error response
consoleLogger(error);