Files
pedwfrontend/pages/api/endpoint/getportalmoduledetails_api.js
T
Robert Bond d7bb1acb10 Merged PR 2414: welsh version of contact us and heading for rep heading for IP rep type
welsh version of contact us and heading for rep heading for IP rep type

Related work items: #23484, #23910
2026-06-22 12:44:36 +00:00

85 lines
2.5 KiB
JavaScript

/**
* @swagger
* /api/endpoint/getportalmoduledetails_api:
* get:
* tags: [Portal]
* description: Get portal module details
* summary: Phase 2
* parameters:
* - name: appealType
* in: query
* required: true
* example: pinswg_planningappeals78s
* schema:
* type: string
* - name: caseReference
* in: query
* required: true
* example: CAS-00764-L0Q9W2
* schema:
* type: string
* responses:
* 200:
* description: hello world
*/
import { getSelectQuery } from "../../../actions/selectQueryTypes";
import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) {
const appealType = req.query.appealType;
const caseReference = req.query.caseReference;
if (typeof appealType !== "string" || appealType.trim().length === 0) {
return respondError(res, {
status: 400,
code: "APPEAL_TYPE_REQUIRED",
message: "appealType is required"
});
}
if (
typeof caseReference !== "string" ||
caseReference.trim().length === 0
) {
return respondError(res, {
status: 400,
code: "CASE_REFERENCE_REQUIRED",
message: "caseReference is required"
});
}
const escapedCaseReference = caseReference.split("'").join("''");
let queryUrl =
appealType +
"?$filter=pinswg_name eq '" +
escapedCaseReference +
"'&$count=true";
queryUrl = queryUrl + getSelectQuery(appealType);
queryUrl =
appealType === "pinswg_sipses"
? queryUrl +
"&$expand=" +
"pinswg_sipscase($select=incidentid,ticketnumber,title,statuscode,pinswg_appealcasetype,pinswg_caseaddress,pinswg_lpareference,pinswg_appellantagent,pinswg_appellantfirstname,pinswg_appellantlastname,_pinswg_associatedlpa_value)," +
"pinswg_sips_pinswg_sipsprojecttype($select=_pinswg_sector_value,pinswg_name,pinswg_sipsprojecttypeid)"
: queryUrl;
const relayPolicy = RELAY_POLICY_BOUNDED_READ;
return relayGet({
queryUrl,
res,
relayPolicy,
errorResponse: {
status: 400,
code: "PORTAL_MODULE_DETAILS_FETCH_FAILED",
message: "Failed to fetch portal module details"
}
});
}