Home Reference Source Test Repository

src/Memberships.js

'use strict'

/** @ignore */
const CiscoSpark = require('./CiscoSpark')

/**
 * Spark Memberships
 * @see https://developer.ciscospark.com/resource-rooms.html
 */
class Memberships extends CiscoSpark {
  /**
   * @constructor
   * @param {?string} accessToken - Your Cisco Spark accesstoken
   * @param {?string} userAgent - User Agent request header
   */
  constructor (accessToken, userAgent) {
    super(accessToken, userAgent, 'https://api.ciscospark.com/v1/memberships')
    /** @private */
    this.idName = 'membershipId'
  }

  /**
   * List Memberships
   * @override
   * @param {Object} params - see https://developer.ciscospark.com/endpoint-teammemberships-get.html
   * @param {requestCallback} callback
   */
  list (params, callback) {
    if (typeof params === 'string') {
      params = { teamId: params }
    }
    return super.list(params, callback)
  }

  /**
   * Create a Membership
   * @override
   * @param {Object} params - see https://developer.ciscospark.com/endpoint-teammemberships-post.html
   * @param {requestCallback} callback
   */
  create (params, callback) {
    if (!params || !params.teamId) return callback(new Error('Invalid params. Require teamId'))
    if (!params.personId && !params.personEmail) return callback(new Error('Invalid params. Require personId or personEmail'))
    return super.create(params, callback)
  }
}

module.exports = Memberships