Source: security/authentication.js

/**
 * An abstract class that specifies common methods for different types
 * of authentication. Concrete authentication types must extend
 * this class and override it's methods
 *
 * @abstract
 * @class
 * @author Teodossi Dossev
 */
export class Authentication {
  /**
   * Constructor.
   * @param {ClientConfig} clientConfig
   */
  constructor(clientConfig) {
    this.clientConfig = clientConfig;
  }
  /**
   * Returns authentication type related {@link HttpRequestBuilder}
   * login request builder
  */
  getLoginRequestBuilder() {
    throw new Error('Method #getLoginRequestBuilder() must be implemented!');
  }

  /**
   * Returns authentication type related {string}
   * token from response
   */
  getResponseAuthToken() {
    throw new Error('Method #getResponseAuthToken() must be implemented!');
  }
}

module.exports = Authentication;