         @_rest.DELETE endpoint, =>
           @_wrapResponse.apply(@, [resolve, reject, originalRequest].concat(_.toArray(arguments)))
 
-  ###*
-   * @private
-   * Wrap responses and decide whether to reject or resolve the promise
-   * @param {Function} resolve The function called to resolve the promise
-   * @param {Function} reject The function called to reject the promise
-   * @param {Object} error An error object when applicable (usually from `http.ClientRequest` object) otherwise `null`
-   * @param {Object} response An `http.IncomingMessage` object containing all kind of information about the request / response
-   * @param {Object} body A JSON object containing the HTTP API resource or error messages
-  ###
+  # Private: Wrap the HTTP response and decide whether to reject or resolve the promise
+  #
+  # resolve - {Function} The function called to `resolve` the {Promise}
+  # reject - {Function} The function called to `reject` the {Promise}
+  # originalRequest - {Object} The object containing information about the request, used when the request fails
+  # error - {Object} An error object when applicable (usually from `http.ClientRequest` object) otherwise `null`
+  # response - {Object} An `http.IncomingMessage` object containing all kind of information about the request / response
+  # body - {Object} A JSON object containing the HTTP API resource or error messages
   _wrapResponse: (resolve, reject, originalRequest, error, response, body) ->
     responseJson =
       if @_stats.includeHeaders

    endpoint = "#{@_currentEndpoint}?version=#{version}"
    @_delete(endpoint)

  ###*
   * Return a {Promise} for a GET call. It can be overridden for custom logic.
   * @param {String} endpoint The resource endpoint
   * @return {Promise} A promise, fulfilled with an {Object} or rejected with a {SphereError}
  ###
  _get: (endpoint) ->
    @_setDefaults()
    @_task.addTask =>

          .done()
      _processPage(@_params.query.page or 1, @_params.query.perPage or 20)

  # Public: Save a new resource defined by the `Service` by passing the payload {Object}.
  #
  # body - {Object} The payload described by the related API resource as JSON
  #
  # Throws an {Error} if `body` is missing
  #
  # Returns a {Promise}, fulfilled with an {Object} or rejected with an instance of an {Error}
  #
  # Examples
  #
  #   service = client.products()
  #   service.save
  #     name:
  #       en: 'Foo'
  #     slug:
  #       en: 'foo'
  #     productType:
  #       id: '123'
  #       typeId: 'product-type'
  save: (body) ->
    unless body
      throw new Error "Body payload is required for creating a resource (endpoint: #{@constructor.baseResourceEndpoint})"
