Home Reference Source Test

src/modules/client.js

import BaseModule from './baseModule'
import { MClient } from '../models'

/**
 * @extends {BaseModule}
 */
export default class Client extends BaseModule {
  constructor () {
    super()
    this.TransformModel = MClient
  }

  /**
  *
  * @returns {Promise<MClient[], APIError>}
  */
  list (organizationId) {
    return this.call(`/organizations/${organizationId}/clients`)
  }

  /**
  * @param {string} organizationId
  * @param {string} term
  *
  * @returns {Promise<MClient[], ResponseError|ServerError>}
  */
  search (organizationId, term) {
    return this.call(`/organizations/${organizationId}/search-clients?term=${term}`)
  }

  /**
  *
  * @returns {Promise<MClient, APIError>}
  */
  get (clientId) {
    return this.call(`/clients/${clientId}`)
  }

  /**
  * @param {string} organizationId
  * @param {object} data
  *
  * @returns {Promise<MClient, APIError>}
  */
  create (organizationId, data) {
    return this.call(`/organizations/${organizationId}/clients`, data, 'POST')
  }

  /**
  * @param {string} clientId
  * @param {object} data
  *
  * @returns {Promise<MClient, APIError>}
  */
  update (clientId, data) {
    return this.call(`/clients/${clientId}`, data, 'PUT')
  }

  /**
  * @param {string} clientId
  *
  * @returns {Promise<MClient, APIError>}
  */
  delete (clientId) {
    return this.call(`/clients/${clientId}`, 'DELETE')
  }
}