/** * @swagger * /api/endpoint/getmylpacases_api: * get: * tags: [Portal] * description: Get My LPA Cases * summary: Phase 2 * parameters: * - name: lpaid * in: query * required: true * example: 726158c6-708d-ec11-aad8-00224800be9c * schema: * type: string * responses: * 200: * description: Success */ import { JSONPath as jsonpath } from "jsonpath-plus"; import { getLPA } from "../../../actions/services/referenceDataService"; import { azureHeaders } from "../../../actions/core/headers"; import { respondError } from "../middleware/apiResponse"; import { relayGet } from "../middleware/relayForwarding"; export default async function ApiProxy(req, res) { const lpaid = req.query.lpaid; if (typeof lpaid !== "string" || lpaid.trim().length === 0) { return respondError(res, { status: 400, code: "LPA_ID_REQUIRED", message: "lpaid is required" }); } try { const lpaList = await getLPA(); const lpaGUID = jsonpath({ path: '$..[?(@ && @.name=="' + lpaid + '")]', json: lpaList, eval: true }); if (!Array.isArray(lpaGUID) || !lpaGUID[0]?.accountid) { return respondError(res, { status: 404, code: "LPA_NOT_FOUND", message: "No matching LPA found" }); } const queryUrl = "incidents?$select=pinswg_environmentalstatementlocation,modifiedon,description,numberofchildincidents,_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value,pinswg_lpareference,pinswg_appellantlastname,pinswg_appellantfirstname,pinswg_appellantagent,pinswg_agentfirstname,pinswg_agentlastname,pinswg_agentcompanyname&$expand=primarycontactid($select=fullname)&$filter=_pinswg_associatedlpa_value eq " + lpaGUID[0].accountid + " and servicestage eq 0 and pinswg_appealcasetype ne null&$orderby=createdon desc&$count=true"; //console.log("///////////\nPortal query: ", queryUrl, "<<< azureHeaders(accessToken), transformData: (data) => { data.value.forEach(function (element) { element.pinswg_title = element.title; }); return data; }, errorResponse: { status: 400, code: "MY_LPA_CASES_FETCH_FAILED", message: "Failed to fetch my LPA cases" } }); } catch (error) { return respondError(res, { status: 400, code: "MY_LPA_CASES_FETCH_FAILED", message: "Failed to fetch my LPA cases" }); } }