feat(relay): apply endpoint-level relayPolicy overrides across account and search flows

This commit is contained in:
2026-03-24 15:36:21 +00:00
parent bb190946ae
commit e0510f9e8f
11 changed files with 206 additions and 0 deletions
+9
View File
@@ -34,9 +34,18 @@ export default async function ApiProxy(req, res) {
emailAddress +
"'&$count=true&$select=emailaddress1, contactid";
const relayPolicy = {
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({
queryUrl,
res,
relayPolicy,
errorResponse: {
status: 400,
code: "ACCOUNTS_FETCH_FAILED",
@@ -103,10 +103,19 @@ export default async function ApiProxy(req, res) {
queryString +
" pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true";
const relayPolicy = {
method: "GET",
timeoutMs: 9000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 1000
};
return relayGet({
queryUrl,
res,
requestOptionsBuilder: (accessToken) => azureHeadersPaged(accessToken),
relayPolicy,
transformData: async (data, accessToken) => {
if (Object.prototype.hasOwnProperty.call(data, "@odata.nextLink")) {
const dataStr = JSON.stringify(data["@odata.nextLink"]);
@@ -173,11 +173,20 @@ export default async function ApiProxy(req, res) {
: "");
}
const relayPolicy = {
method: "GET",
timeoutMs: 9000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 1000
};
return relayGet({
queryUrl,
res,
requestOptionsBuilder: (accessToken) =>
azureHeadersPagedCustom(accessToken, showNumberOfRecords),
relayPolicy,
transformData: (data) => {
let dataStr;
_.has(data, "@odata.nextLink") === true &&
+9
View File
@@ -45,10 +45,19 @@ export default async function ApiProxy(req, res) {
: "") +
"and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true";
const relayPolicy = {
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({
queryUrl,
res,
requestOptionsBuilder: (accessToken) => azureHeadersPaged(accessToken),
relayPolicy,
transformData: (data) => {
if (Object.prototype.hasOwnProperty.call(data, "@odata.nextLink")) {
const dataStr = JSON.stringify(data["@odata.nextLink"]);
@@ -111,11 +111,20 @@ export default async function ApiProxy(req, res) {
? "&$skiptoken=" + '<cookie pagenumber="' + pageNumber + '" />'
: "");
const relayPolicy = {
method: "GET",
timeoutMs: 9000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 1000
};
return relayGet({
queryUrl,
res,
requestOptionsBuilder: (accessToken) =>
azureHeadersPagedCustom(accessToken, showNumberOfRecords),
relayPolicy,
transformData: (data) => {
if (_.has(data, "@odata.nextLink") === true) {
const dataStr = JSON.stringify(data["@odata.nextLink"]);
@@ -34,9 +34,18 @@ export default async function ApiProxy(req, res) {
emailAddress +
"'&$count=true&$select=emailaddress1, contactid";
const relayPolicy = {
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({
queryUrl,
res,
relayPolicy,
errorResponse: {
status: 400,
code: "EMAIL_ACCOUNT_CHECK_FAILED",
+9
View File
@@ -52,10 +52,19 @@ export default async function ApiProxy(req, res) {
pwd +
"'&$count=true&$select=emailaddress1,contactid,pinswg_custom_password,yomifullname,firstname,lastname";
const relayPolicy = {
method: "GET",
timeoutMs: 5000,
maxRetries: 0,
retryBaseDelayMs: 0,
retryMaxDelayMs: 0
};
return relayGet({
queryUrl,
res,
requestOptionsBuilder: (accessToken) => azureHeadersPaged(accessToken),
relayPolicy,
errorResponse: {
status: 400,
code: "LOGIN_FETCH_FAILED",
@@ -36,9 +36,18 @@ export default async function ApiProxy(req, res) {
contactid +
")?$select=firstname, lastname, emailaddress1, telephone1, company, address1_line1,address1_line2,address1_city, address1_county,address1_postalcode,pinswg_typeofinvolvement,pinswg_contact_associatedlpa,pinswg_preferredlanguage&$count=true";
const relayPolicy = {
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({
queryUrl,
res,
relayPolicy,
errorResponse: {
status: 400,
code: "PERSONAL_ACCOUNT_FETCH_FAILED",
@@ -39,9 +39,18 @@ export default async function ApiProxy(req, res) {
escapeODataString(emailAddress) +
"'&$count=true&$select=pinswg_preferredlanguage,contactid";
const relayPolicy = {
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({
queryUrl,
res,
relayPolicy,
errorResponse: {
status: 400,
code: "PREFERRED_LANGUAGE_FETCH_FAILED",