Skip to content

Commit cbcb793

Browse files
authored
Search and replace policy (#54)
* Added ‘SearchAndReplace’ Apigee policy * Renamed to ‘SearchAndReplaceResponse’ * Fixed typo * Removed any ES6 syntax * Added SearchAndReplaceResponse Apigee policy to sandbox * Added JS file * Updated name * Moved flow in to the TargetEndpoint * Updated the search and replace JS * Debugging basePath and subdomain * Debug context * Debugging proxyRequest and targetRequest * WIP * Added timestamp * WIP * WIP * WIP * WIP * WIP * Using target.name in API host name * Removed switch statement * Using a request.url * Removed targetName * Updated JS * Added check for ‘api.nhs.uk’ too * Added api.nhs.uk * Added a check for ‘api’ * Added debugging for ‘requestUrl’ and ‘environmentSubdomain’ * Moved ‘item’ variable outside the ‘for’ loop
1 parent 4923dad commit cbcb793

2 files changed

Lines changed: 24 additions & 6 deletions

File tree

proxies/live/apiproxy/resources/jsc/SearchAndReplaceResponse.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ environmentSubdomain = environmentSubdomain.split(".");
66
environmentSubdomain = environmentSubdomain[0];
77

88
var apiVersion2Host;
9-
if (environmentSubdomain === "apis" || environmentSubdomain === "prod") {
9+
if (
10+
environmentSubdomain === "api" ||
11+
environmentSubdomain === "apis" ||
12+
environmentSubdomain === "prod"
13+
) {
1014
apiVersion2Host = "api.service.nhs.uk";
1115
} else {
1216
apiVersion2Host = environmentSubdomain + ".api.service.nhs.uk";
@@ -76,11 +80,16 @@ var searchAndReplaceStrings = [
7680
];
7781

7882
var responseContent = context.getVariable("response.content");
79-
var regex;
83+
var regex, item;
8084
for (var i = 0; i < searchAndReplaceStrings.length; i++) {
81-
var item = searchAndReplaceStrings[i];
85+
item = searchAndReplaceStrings[i];
8286
regex = new RegExp(item.searchFor, "g");
8387
responseContent = responseContent.replace(regex, item.replaceWith);
8488
}
8589

90+
responseContent = JSON.parse(responseContent);
91+
responseContent.requestUrl = requestUrl;
92+
responseContent.environmentSubdomain = environmentSubdomain;
93+
responseContent = JSON.stringify(responseContent);
94+
8695
context.setVariable("response.content", responseContent);

proxies/sandbox/apiproxy/resources/jsc/SearchAndReplaceResponse.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ environmentSubdomain = environmentSubdomain.split(".");
66
environmentSubdomain = environmentSubdomain[0];
77

88
var apiVersion2Host;
9-
if (environmentSubdomain === "apis" || environmentSubdomain === "prod") {
9+
if (
10+
environmentSubdomain === "api" ||
11+
environmentSubdomain === "apis" ||
12+
environmentSubdomain === "prod"
13+
) {
1014
apiVersion2Host = "api.service.nhs.uk";
1115
} else {
1216
apiVersion2Host = environmentSubdomain + ".api.service.nhs.uk";
@@ -76,11 +80,16 @@ var searchAndReplaceStrings = [
7680
];
7781

7882
var responseContent = context.getVariable("response.content");
79-
var regex;
83+
var regex, item;
8084
for (var i = 0; i < searchAndReplaceStrings.length; i++) {
81-
var item = searchAndReplaceStrings[i];
85+
item = searchAndReplaceStrings[i];
8286
regex = new RegExp(item.searchFor, "g");
8387
responseContent = responseContent.replace(regex, item.replaceWith);
8488
}
8589

90+
responseContent = JSON.parse(responseContent);
91+
responseContent.requestUrl = requestUrl;
92+
responseContent.environmentSubdomain = environmentSubdomain;
93+
responseContent = JSON.stringify(responseContent);
94+
8695
context.setVariable("response.content", responseContent);

0 commit comments

Comments
 (0)