![JAR search and dependency download from the Maven repository](/logo.png)
scripts.1.0.0.5-update-published-api.js Maven / Gradle / Ivy
db.apis.find().forEach(
function(api) {
db.events.find({'type': 'PUBLISH_API', 'properties.api_id': api._id}).sort({'createdAt':-1}).limit(1).forEach(
function(event) {
var payload = JSON.parse(event.payload);
var definition = JSON.parse(payload.definition);
var dumpRequest = false;
if (definition.proxy.http !== undefined) {
dumpRequest = definition.proxy.http.configuration.dumpRequest;
}
if (definition.proxy.endpoints !== undefined) {
for (var i = 0 ; i < definition.proxy.endpoints.length ; i++) {
var endpoint = definition.proxy.endpoints[i];
endpoint.name = 'endpoint_' + i;
if (definition.proxy.http !== undefined) {
endpoint.http = definition.proxy.http.configuration;
if (definition.proxy.http.http_proxy) {
endpoint.proxy = definition.proxy.http.http_proxy;
}
if (definition.proxy.http.ssl) {
endpoint.ssl = definition.proxy.http.ssl;
}
delete endpoint.http.dumpRequest;
}
}
}
delete definition.proxy.http;
if (dumpRequest) {
definition.proxy.dumpRequest = dumpRequest;
}
var paths = Object.keys(definition.paths);
for (var i = 0 ; i < paths.length ; i++) {
var path = definition.paths[paths[i]];
var apiKey = -1;
for (var j = 0 ; j < path.length ; j++) {
var fields = Object.keys(path[j]);
for(var k = 0 ; k < fields.length ; k++) {
if (fields[k] === 'api-key') {
apiKey = j;
break;
}
}
}
if (apiKey !== -1) {
path.splice(apiKey, 1);
}
}
payload.definition = JSON.stringify(definition);
db.events.updateOne({ _id: event._id}, {$set: {payload: JSON.stringify(payload)}}, { upsert: true} );
}
);
}
);
© 2015 - 2025 Weber Informatics LLC | Privacy Policy