<commit_before>/*!
 * Copyright (c) 2015-2018 Cisco Systems, Inc. See LICENSE file.
 */

/**
  * Events to emit
  * ==============
  * - leave
  * - join
  * - end
  * - meeting.metrics {
  *   - media
  *   - MQE
  *   - callAnalyzer
  *   - meetingEndMetrics?
  * }
  * - statusChange {
  *   - status, e.g., leaving, left, reason
  * }
  * - typeChange {
  *   - type
      - reason
  * }
  *
  * @export
  * @class Meeting
  */
export default class Meeting {
  /**
   * Create an instance of Meeting
   *
   * @param {string} options.id
   * @param {string} options.spaceID
   * @param {array} options.members
   * @param {object} options.peerConnections
   * @param {object} options.health
   * @param {string} options.type
   * @param {string} options.direction
   * @param {object} options.pairedDevice
   * @param {ISOString} options.startTime
   * @param {ISOString} options.endTime
   * @memberof Meeting
   */
  constructor({
    id, spaceID, members, peerConnections, health, type, direction, pairedDevice, startTime, endTime
  }) {
    this.id = id;
    this.spaceID = spaceID;
    this.memebers = members;
    this.peerConnections = peerConnections;
    this.health = health;
    this.type = type;
    this.direction = direction;
    this.pairedDevice = pairedDevice;
    this.startTime = startTime || new Date().toISOString();
    this.endTime = endTime || new Date().toISOString();
  }

  /**
   *
   * Specify joining via audio (option: pstn), video, screenshare
   * @exports
   * @param {object} [options={ PairedDevice, Password }]
   * @returns {Promise}
   * @memberof Meeting
   */
  join(options = {}) {
    return new Promise((resolve) => resolve(options));
  }

  /**
   *
   * Move this meeting to a given device
   * only possible if you are paired with the given device
   * @param {string} deviceID
   * @returns {Promise}
   * @memberof Meeting
   */
  moveToDevice(deviceID) {
    return new Promise((resolve) => resolve(deviceID));
  }

  /**
   *
   * Move this meeting back to the current client device, e.g., personal laptop.
   * @returns {Promise}
   * @memberof Meeting
   */
  moveToClient() {
    return new Promise((resolve) => resolve({}));
  }

  /**
   *
   * Update the audio options of this meeting
   * @param {object} [options]
   * @param {string} status
   * @returns {Promise}
   * @memberof Meeting
   */
  updateAudio(options = {}, status) {
    return new Promise((resolve) => resolve(options, status));
  }

  /**
   *
   * Update the video option of this meeting
   * @param {string} status
   * @returns {Promise}
   * @memberof Meeting
   */
  updateVideo(status) {
    return new Promise((resolve) => resolve(status));
  }

  /**
   *
   * Update screen sharing preference of this meeting
   * @param {string} shareType
   * @returns {Promise}
   * @memberof Meeting<commit_msg>PR fixes and updated descriptions<commit_after>/*!
 * Copyright (c) 2015-2018 Cisco Systems, Inc. See LICENSE file.
 */
/**
  * Events to emit
  * ==============
  * - leave
  * - join
  * - end
  * - meeting.metrics {
  *   - media
  *   - MQE
  *   - callAnalyzer
  *   - meetingEndMetrics?
  * }
  * - statusChange {
  *   - status, e.g., leaving, left, reason
  * }
  * - typeChange {
  *   - type
      - reason
  * }
  *
  * @export
  * @class Meeting
  */
export default class Meeting {
  /**
   * Create an instance of Meeting
   *
   * @param {string} options.id
   * @param {string} options.spaceID
   * @param {array} options.members
   * @param {object} options.peerConnections
   * @param {object} options.health
   * @param {string} options.type
   * @param {string} options.direction
   * @param {object} options.pairedDevice
   * @param {ISOString} options.startTime
   * @param {ISOString} options.endTime
   * @memberof Meeting
   */
  constructor({
    id, spaceID, members, peerConnections, health, type, direction, pairedDevice, startTime, endTime
  }) {
    this.id = id;
    this.spaceID = spaceID;
    this.memebers = members;
    this.peerConnections = peerConnections;
    this.health = health;
    this.type = type;
    this.direction = direction;
    this.pairedDevice = pairedDevice;
    this.startTime = startTime || new Date().toISOString();
    this.endTime = endTime || new Date().toISOString();
  }

  /**
   *
   * Specify joining via audio (option: pstn), video, screenshare
   * @exports
   * @param {*} [options={ PairedDevice, Password }]
   * @returns {Promise}
   * @memberof Meeting
   */
  join(options = {}) {
    return new Promise((resolve) => resolve(options));
  }

  /**
   *
   * Move this meeting to a given device
   * only possible if you are paired with the given device
   *
   * @param {string} deviceID
   * @returns {Promise}
   * @memberof Meeting
   */
  moveToDevice(deviceID) {
    return new Promise((resolve) => resolve(deviceID));
  }

  /**
   *
   * Move this meeting back to the current client device, e.g., personal laptop.
   * @returns {Promise}
   * @memberof Meeting
   */
  moveToClient() {
    return new Promise((resolve) => resolve({}));
  }

  /**
   *
   * Update the audio options of this meeting
   * @param {*} [options={}]
   * @param {*} status
   * @returns {Promise}
   * @memberof Meeting
   */
  updateAudio(options = {}, status) {
    return new Promise((resolve) => resolve(options, status));
  }

  /**
   *
   * Update the video option of this meeting
   * @param {*} status
   * @returns {Promise}
   * @memberof Meeting
   */
  updateVideo(status) {
    return new Promise((resolve) => resolve(status));
  }

  /**
   *
   * Update screen sharing preference of this meeting
   * @param {*} shareType
   * @returns {Promise}
   * @memberof Meeting
{'fraction_non_alphanumeric': 0.1417752729834449, 'fraction_numerical': 0.0028178936245156746, 'mean_word_length': 2.7020860495436767, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '138310', 'n_tokens_mistral': 1832, 'n_tokens_neox': 1790, 'n_words': 476}