This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
index.html 3.26 KiB
Newer Older
Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed
<!DOCTYPE html>
<html lang="en">
Michael Breu's avatar
Michael Breu committed
  <head>
    <meta charset="UTF-8" />
    <title>gitsearch - Swagger UI</title>
Michael Breu's avatar
Michael Breu committed
    <link rel="stylesheet" type="text/css" href="./swagger-ui.css" />
    <link rel="icon" type="image/png" href="../favicon.ico" />
Michael Breu's avatar
Michael Breu committed
  </head>
Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed

Michael Breu's avatar
Michael Breu committed
  <body>
    <div id="swagger-ui"></div>
Michael Breu's avatar
Michael Breu committed
    <script src="./swagger-ui-bundle.js"></script>
    <script src="./swagger-ui-standalone-preset.js"></script>
    <script src="./axios.min.js"></script>
Michael Breu's avatar
Michael Breu committed
    <script type="text/javascript">
      const AlwaysEnableTryItOutPlugin = function (system) {
        const OperationContainer = system.getComponents('OperationContainer');
        return {
          components: {
            TryItOutButton: () => null,
            OperationContainer: class CustomOperationContainer extends OperationContainer {
              constructor(...args) {
                super(...args);
                this.state.tryItOutEnabled = true;
              }
            },
          },
        };
      };
Michael Breu's avatar
Michael Breu committed
      window.onload = async function () {
        const getBearerToken = () => {
          var authToken = localStorage.getItem('jhi-authenticationToken') || sessionStorage.getItem('jhi-authenticationToken');
          if (authToken) {
            authToken = JSON.parse(authToken);
            return `Bearer ${authToken}`;
          }
          return null;
        };
        const axiosConfig = {
          timeout: 5000,
          headers: { Authorization: getBearerToken() },
        };
Michael Breu's avatar
Michael Breu committed
        const baseUrl = '/v3/api-docs';
        let urls;
Michael Breu's avatar
Michael Breu committed
        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: `${baseUrl}/${group}` }));
          }
        }
        console.log(`Swagger urls`, urls);
Michael Breu's avatar
Michael Breu committed
        if (urls) {
          urls.sort(function (a, b) {
            var x = a.name.toLowerCase(),
              y = b.name.toLowerCase();
            if (x.includes('connector')) return -1;
            if (y.includes('connector')) return 1;
Michael Breu's avatar
Michael Breu committed
            if (x.includes('(default)')) return -1;
            if (y.includes('(default)')) return 1;
            if (x.includes('(management)')) return -1;
            if (y.includes('(management)')) return 1;
            return x < y ? -1 : x > y ? 1 : 0;
          });
        }
Michael Breu's avatar
Michael Breu committed
        // 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],
          requestInterceptor: function (req) {
            req.headers['Authorization'] = getBearerToken();
            // 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;
          },
Michael Breu's avatar
Michael Breu committed
        window.ui = ui;
      };
    </script>
  </body>
Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed
</html>