rimiti/keldoc-js-sdk

View on GitHub
src/classes/resources/appointments/index.js

Summary

Maintainability
A
3 hrs
Test Coverage
// @flow
import Common from '../../common';
import Validation from '../../validation';

export default class Appointments extends Common {
  /**
   * @description Create appointment.
   * @param body
   * @return {Promise.<any>}
   */
  create(body: { start_at: string }): Promise<any> {
    const url = `${this.configuration.routes.appointments}`;
    return Validation.validateCreateAppointment(body)
      .then(() => super.postRequest(url, body));
  }

  /**
   * @description Update appointment.
   * @param id
   * @param body
   * @return {Promise.<any>}
   */
  update(id: number, body: { start_at: string }): Promise<any> {
    const url = `${this.configuration.routes.appointments}/${id.toString()}`;
    return Validation.validateUpdateAppointment(body)
      .then(() => super.putRequest(url, body));
  }

  /**
   * @description Remove appointment.
   * @param id
   * @return {Promise.<any>}
   */
  remove(id: number): Promise<any> {
    const url = `${this.configuration.routes.appointments}/${id.toString()}`;
    return super.deleteRequest(url);
  }
}