class ZuoraConnect::AppInstanceBase
def update_task(options)
def update_task(options) update_task_count ||= 0 response = HTTParty.post(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}/update_task",:body => {:access_token => self.username}.merge(options)) parsed_json = JSON.parse(response.body) if response.code == 200 return parsed_json elsif response.code == 400 raise ZuoraConnect::Exceptions::APIError.new(message: parsed_json['errors'].join(' '), response: response.body, code: response.code) else raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("Error Communicating with Connect", response.body, response.code) end rescue *(ZuoraAPI::Login::CONNECTION_EXCEPTIONS).concat(ZuoraAPI::Login::CONNECTION_READ_EXCEPTIONS) => ex if (update_task_count += 1) < 3 retry else raise end rescue ZuoraConnect::Exceptions::ConnectCommunicationError => ex if (update_task_count += 1) < 3 if ex.code == 401 self.refresh_oauth end retry else raise end end