code: function(args) {
  
                  this.driver.trigger('service:request:before', args);
  
                  var that = this;
  
                  return this._requestWithRetries(args).then(function(response) {
                      that.driver.trigger('service:request:after', response);
                      that.driver.config.set(corbel.Services._UNAUTHORIZED_NUM_RETRIES, 0);
                      return response;
                  }).catch(function(error) {
                      that.driver.trigger('service:request:after', error);
                      that.driver.config.set(corbel.Services._UNAUTHORIZED_NUM_RETRIES, 0);
                      throw error;
                  });
  
              }
docs: Execute the actual ajax request.
  Retries request with refresh token when credentials are needed.
  Refreshes the client when a force update is detected.
  Returns a server error (corbel.Services._FORCE_UPDATE_STATUS_CODE - unsupported_version) when force update max retries are reached
  
  @memberof corbel.Services.prototype
  @param  {Promise} dfd     The deferred object to resolve when the ajax request is completed.
  @param  {object} args    The request arguments.