Home Identifier Source Repository

lib/Resource/SuperagentResponse.js

/**
 * Created by AlexanderC on 6/10/15.
 */

'use strict';

import {Response} from './Response';

export class SuperagentResponse extends Response {
  /**
   * @param {Request} request
   * @param {Object} data
   * @param {String} error
   */
  constructor(request, data, error) {
    super(...arguments);

    this._data = this._parseResponse(data);
    this._error = error;
  }

  /**
   * Parse response given by superagent library
   *
   * @param {Object} response
   * @returns {Object}
   * @private
   */
  _parseResponse(response) {
    if (response.error) {
      this._error = response.error;
    }

    this._statusCode = response.status;

    return response.body;
  }

  /**
   * @returns {Object}
   */
  get data() {
    return this._data;
  }

  /**
   * @returns {Boolean}
   */
  get isError() {
    return !!this._error;
  }

  /**
   * @returns {String}
   */
  get error() {
    return this._error;
  }

  /**
   * @returns {String}
   */
  get statusCode() {
    return this._statusCode;
  }
}