def all(cls, params=None): """Get list of payments as on https://cloudconvert.com/api/v2/tasks#tasks-list Usage:: >>> tasks_list = tasks.all({'status': 'waiting'}) """ api_client = default_client() if params is None: url = cls.path else: url = util.join_url_params(cls.path, params) try: response = api_client.get(url) res = cls.list_class(response, api_client=api_client) try: return res.to_json().get("data") except: return res.to_json() except AttributeError: # To handle the case when response is JSON Array if isinstance(response, list): new_resp = [cls.list_class(elem, api_client=api_client) for elem in response] return new_resp
def __init__(self, attributes=None, api_client=None): attributes = attributes or {} self.__dict__['api_client'] = api_client or default_client() super(Resource, self).__setattr__('__data__', {}) super(Resource, self).__setattr__('error', None) super(Resource, self).__setattr__('headers', {}) super(Resource, self).__setattr__('header', {}) super(Resource, self).__setattr__('request_id', None) self.merge(attributes)
def _get_valid_conversions(): """GET supported conversion formats from CloudConvert """ global valid_conversions if valid_conversions: return valid_conversions res = default_client().get(action='v2/convert/formats') valid_conversions = functools.reduce( _combine_dict('input_format', 'output_format'), res['data'], dict()) return valid_conversions
def delete(cls, id): """Deletes a resource e.g. task Usage:: >>> Task.delete(TASK_ID) """ api_client = default_client() url = util.join_url(cls.path, str(id)) api_resource = Resource() new_attributes = api_client.delete(url) api_resource.error = None api_resource.merge(new_attributes) return api_resource.success()
def show(cls, id): """show resource e.g. job with given id Usage:: >>> job = Job.show("s9fsf9-s9f9sf9s-ggfgf9-fg9fg") """ api_client = default_client() url = util.join_url(cls.path, str(id)) res = api_client.get(url) try: return res["data"] except: return res
def cancel(cls, id): """Cancel a resource for given Id e.g. task Usage:: >>> Task.cancel("4534d-34gsf-54cxv-9cxv") # return True or False """ api_client = default_client() url = util.join_url(cls.path, str(id), "cancel") api_resource = Resource() new_attributes = api_client.post(url, {}, {}) api_resource.error = None api_resource.merge(new_attributes) return api_resource.success()
def retry(cls, id): """Retry a resource for given Id e.g. task Usage:: >>> Task.retry("4534d-34gsf-54cxv-9cxv") """ api_client = default_client() url = util.join_url(cls.path, str(id), "retry") res = api_client.post(url) try: return res["data"] except: return res
def user(cls): """Locate resource e.g. current user Usage:: >>> user = User.user() """ api_client = default_client() url = util.join_url(cls.path, "me") res = api_client.get(url) try: return res["data"] except: return res
def create(cls, operation=None, payload={}): """Creates a resource e.g. task Usage:: >>> task = Task({}) >>> task.create(name=TASK_NAME) # return newly created task """ api_client = default_client() url = util.join_url('v2', operation or '') res = api_client.post(url, payload, headers={}) try: return res["data"] except: return res