Initial Project Commit

This commit is contained in:
Orlando M Guerreiro 2025-05-22 19:23:40 +01:00
commit a6dea9c888
2148 changed files with 173870 additions and 0 deletions

View file

@ -0,0 +1,115 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>resilient - Swagger UI</title>
<base href="/swagger-ui/" />
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" />
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
</head>
<body>
<div id="swagger-ui"></div>
<script src="./swagger-ui-bundle.js"></script>
<script src="./swagger-ui-standalone-preset.js"></script>
<script src="./axios.min.js"></script>
<script type="text/javascript">
const AlwaysEnableTryItOutPlugin = function (system) {
return {
components: {
TryItOutButton: () => null,
},
};
};
function getCSRF() {
var name = 'XSRF-TOKEN=';
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') c = c.substring(1);
if (c.indexOf(name) !== -1) return c.substring(name.length, c.length);
}
return '';
}
function createAxiosConfig(serverBaseUri) {
return {
timeout: 5000,
baseURL: serverBaseUri,
};
}
async function fetchUrls(serverBaseUri, axiosConfig, baseUrl) {
let urls;
if (!urls || urls.length === 0) {
const response = await axios.get('/management/jhiopenapigroups', axiosConfig);
if (Array.isArray(response.data)) {
urls = response.data.map(({ group, description }) => ({ name: description, url: `${serverBaseUri}${baseUrl}/${group}` }));
} else {
urls = [{ name: 'default', url: `${serverBaseUri}${baseUrl}` }];
}
}
console.log(`Swagger urls`, urls);
return urls;
}
function sortUrls(urls) {
if (!urls) return urls;
urls.sort((a, b) => compareUrls(a.name.toLowerCase(), b.name.toLowerCase()));
return urls;
}
function compareUrls(nameA, nameB) {
if (nameA.includes('(default)')) return -1;
if (nameB.includes('(default)')) return 1;
if (nameA.includes('(management)')) return -1;
if (nameB.includes('(management)')) return 1;
return nameA.localeCompare(nameB);
}
function initializeSwaggerUI(urls, baseUrl) {
// Build a system
var ui = SwaggerUIBundle({
urls: urls,
url: baseUrl,
dom_id: '#swagger-ui',
deepLinking: true,
filter: true,
layout: 'StandaloneLayout',
withCredentials: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl, AlwaysEnableTryItOutPlugin],
tryItOutEnabled: true,
requestInterceptor: function (req) {
req.headers['X-XSRF-TOKEN'] = getCSRF();
// Remove the sample Swagger UI request body if present
if (req.method === 'GET' && req.body === '{"additionalProp1":"string","additionalProp2":"string","additionalProp3":"string"}') {
req.body = undefined;
}
return req;
},
});
window.ui = ui;
}
window.onload = async function () {
const baseUrl = 'v3/api-docs';
const serverBaseUri = document.baseURI.replace('swagger-ui/', '');
const axiosConfig = createAxiosConfig(serverBaseUri);
const urls = await fetchUrls(serverBaseUri, axiosConfig, baseUrl);
const sortedUrls = sortUrls(urls);
initializeSwaggerUI(sortedUrls, baseUrl);
};
</script>
</body>
</html>