Home Reference Source

src/main.js

import ProvisionedService from "./types/provisioned-service";
import ProvisionedServiceClient from "./clients/provisioned-service-client";
import MockProvisionedServiceClient from "./clients/mock-provisioned-service-client";

/**
 * Provides a set of functions for retrieving various OpenShift resources and
 * parsing them into a specific format.
 */
export default class OpenShiftResourceParser {
  /**
   * Construct a new {@link OpenShiftResourceParser}
   * @param {Object} config Configuration for the parser.
   * @param {string} config.openshiftURL The URL of OpenShift.
   * @param {boolean} config.mockData Whether the parser should use mock data or not.
   */
  constructor(config) {
    this.config = config;
    this.provisionedServiceClient = new ProvisionedServiceClient(this.config.openshiftURL);
  }

  /**
   * Get a ProvisionedService from a specified namespace, by name.
   * @param {string} authToken An auth token for a user.
   * @param {string} namespace The namespace to find the service in.
   * @param {string} serviceName The name of the service to retrieve.
   * @returns {Promise<ProvisionedService>}
   */
  getProvisionedMWService(authToken, namespace, serviceName) {
    if (this.config.mockData) {
      return MockProvisionedServiceClient.getProvisionedService();
    }
    return this.provisionedServiceClient.getProvisionedService(authToken, namespace, serviceName);
  }

  /**
   * Retrieve a list of provisioned services in a namespace.
   * @param {string} authToken
   * @param {string} namespace
   * @returns {Promise<ProvisionedService>}
   */
  listProvisionedMWServices(authToken, namespace) {
    if (this.config.mockData) {
      return MockProvisionedServiceClient.listProvisionedServices();
    }
    return this.provisionedServiceClient.listProvisionedServices(authToken, namespace);
  }
}