/** * @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 { azureHeaders } from "../../../actions/core/headers"; import { respondError } from "../middleware/apiResponse"; import { relayGet } from "../middleware/relayForwarding"; 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) { const incidentID = req.query.incidentid; if (typeof incidentID !== "string" || incidentID.trim().length === 0) { return respondError(res, { status: 400, code: "INCIDENT_ID_REQUIRED", message: "incidentid is required" }); } const queryUrl = "pinswg_documents?$count=true&$filter=_pinswg_documentids_value eq " + incidentID + " and not(contains(pinswg_name,'_Appeal_Form.pdf'))&$select=pinswg_name,pinswg_isharedocumentlocations"; return relayGet({ queryUrl, res, requestOptionsBuilder: (accessToken) => azureHeaders(accessToken), transformData: (data) => { data.value.forEach((item) => { item.name = item.pinswg_name; }); return data; }, errorResponse: { status: 400, code: "APPEAL_PDF_DOCUMENTS_FETCH_FAILED", message: "Failed to fetch appeal PDF documents" } }); }