/** * @swagger * /api/endpoint/getsearchdocumentTypes_api: * get: * tags: [Search,] * description: Returns types of documents for a case * parameters: * - name: incidentid * in: query * required: true * example: 50b533aa-43f1-ec11-aade-00224800be9c * schema: * type: string * responses: * 200: * description: Success */ import axios from "axios"; import CryptoJS from "crypto-js"; import { azureHeaders, consoleLogger, getToken } from "../../../actions"; const WORDKEY = process.env.HASHKEY; const WEBAPI_URL = process.env.RELAY_ROOT || "https://dev-pedw-ns.servicebus.windows.net/dev-pedw-hc/"; const hashAPIPath = (queryPath) => { var hashlink = CryptoJS.HmacSHA256( queryPath, CryptoJS.enc.Hex.parse(WORDKEY) ); hashlink = hashlink.toString(CryptoJS.enc.Hex); //return "&hash=" + hashlink; return (queryPath.indexOf("?") > -1 ? "&hash=" : "?hash=") + hashlink; }; const groupArray = (arr) => { const map = new Map(); // Count occurrences of each object arr.forEach((obj) => { const key = JSON.stringify(obj); map.set(key, (map.get(key) || 0) + 1); }); // Create a new array to store unique objects with count const result = []; map.forEach((count, key) => { const obj = JSON.parse(key); const transformedObj = { pinswg_isharedocumentlocations: obj.pinswg_isharedocumentlocations, // Change 'id' to 'userId' pinswg_isharedocumentlocationsLabel: obj[ "pinswg_isharedocumentlocations@OData.Community.Display.V1.FormattedValue" ], // Change 'name' to 'userName' count: count, // Add 'count' as 'occurrences' }; result.push(transformedObj); }); return result; }; export default async function ApiProxy(req, res) { var incidentID = req.query.incidentid; var token = await getToken(); var queryUrl = "pinswg_documents?$count=true&$filter=_pinswg_documentids_value eq " + incidentID + " and not(contains(pinswg_name,'_Appeal_Form.pdf'))&$select=pinswg_name,pinswg_isharedocumentlocations"; console.log("docu: ", WEBAPI_URL + queryUrl + hashAPIPath(queryUrl)); return axios .get( WEBAPI_URL + queryUrl + hashAPIPath(queryUrl), azureHeaders(token.access_token) ) .then(({ data }) => { // //delete data["pinswg_documentid"]; // data.value.forEach(function (element) { // delete element["pinswg_documentid"]; // }); // var dataArr = groupArray(data.value); // // var dataStr; // // _.has(data, "@odata.nextLink") == true && // // ((dataStr = JSON.stringify(data["@odata.nextLink"])), // // (data["@odata.nextLink"] = dataStr.split("/v8.2/")[1])); data.value.forEach((item) => { item.name = item.pinswg_name; }); res.status(200).json(data); }) .catch((error) => { consoleLogger(error); res.status(400).json(error); }); }