def create(uuid, **kwargs): #Validate session parameters data = { "uuid": uuid, "token": crocodoc.api_token } boolean_parameters = ("editable", "admin", "downloadable", "copyprotected", "demo") for key in list(kwargs.iterkeys()): if key in boolean_parameters: data[key] = "true" if bool(kwargs[key]) else "false" del kwargs[key] #User? if "user" in kwargs and "id" in kwargs["user"] and "name" in kwargs["user"]: data["user"] = str(kwargs["user"]["id"]) + ',' + kwargs["user"]["name"] del kwargs["user"] #Filter? if "filter" in kwargs: data["filter"] = kwargs["filter"] del kwargs["filter"] #Sidebar? if "sidebar" in kwargs: data["sidebar"] = kwargs["sidebar"] del kwargs["sidebar"] #POST request r = requests.post(crocodoc.base_url + "session/create", data) #Error? crocodoc.handleresponse(r) #Success? if "session" in r.json(): return r.json()["session"] else: raise crocodoc.CrocodocError("missing_session_key", r)
def text(uuid): #GET request querystring = "uuid=%s&token=%s" % (uuid, crocodoc.api_token) url = crocodoc.base_url + "download/text?" + querystring r = requests.get(url) #Error? crocodoc.handleresponse(r, True) #Success! return r.content
def delete(uuid): #POST request data = { "uuid": uuid, "token": crocodoc.api_token } url = crocodoc.base_url + "document/delete" r = requests.post(url, data) #Error? crocodoc.handleresponse(r) #Success! return True
def thumbnail(uuid, width=None, height=None): #Build query string querystring = "uuid=%s&token=%s" % (uuid, crocodoc.api_token) if width is not None and height is not None: querystring += "&size=%dx%d" % (width, height) #GET request url = crocodoc.base_url + "download/thumbnail?" + querystring r = requests.get(url) #Error? crocodoc.handleresponse(r, True) #Success! return r.content
def status(uuids): #Single uuid? single_uuid = isinstance(uuids, basestring) if single_uuid: uuids = [uuids] #GET request querystring = "uuids=%s&token=%s" % (",".join(uuids), crocodoc.api_token) url = crocodoc.base_url + "document/status?" + querystring r = requests.get(url) #Error? crocodoc.handleresponse(r) #Success! return r.json()[0] if single_uuid else r.json()
def document(uuid, pdf=False, annotated=False, filter=None): #Build query string querystring = "uuid=%s&token=%s" % (uuid, crocodoc.api_token) if pdf: querystring += "&pdf=true" if annotated: querystring += "&annotated=true" if filter: querystring += "&filter=%s" % (filter, ) #GET request url = crocodoc.base_url + "download/document?" + querystring r = requests.get(url) #Error? crocodoc.handleresponse(r, True) #Success! return r.content
def document(uuid, pdf=False, annotated=False, filter=None): #Build query string querystring = "uuid=%s&token=%s" % (uuid, crocodoc.api_token) if pdf: querystring += "&pdf=true" if annotated: querystring += "&annotated=true" if filter: querystring += "&filter=%s" % (filter,) #GET request url = crocodoc.base_url + "download/document?" + querystring r = requests.get(url) #Error? crocodoc.handleresponse(r, True) #Success! return r.content
def upload(url=None, file=None): #POST request data = { "token": crocodoc.api_token } files = {} if file: files["file"] = file elif url: data["url"] = url else: raise crocodoc.CrocodocError("invalid_url_or_file_param", r) r = requests.post(crocodoc.base_url + "document/upload", data=data, files=files) #Error? crocodoc.handleresponse(r) #Success? if "uuid" in r.json(): return r.json()["uuid"] else: raise crocodoc.CrocodocError("missing_uuid", r)
def create(uuid, **kwargs): #Validate session parameters data = {"uuid": uuid, "token": crocodoc.api_token} boolean_parameters = ("editable", "admin", "downloadable", "copyprotected", "demo") for key in list(kwargs.iterkeys()): if key in boolean_parameters: data[key] = "true" if bool(kwargs[key]) else "false" del kwargs[key] #User? if "user" in kwargs and "id" in kwargs["user"] and "name" in kwargs["user"]: data["user"] = str(kwargs["user"]["id"]) + ',' + kwargs["user"]["name"] del kwargs["user"] #Filter? if "filter" in kwargs: data["filter"] = kwargs["filter"] del kwargs["filter"] #Sidebar? if "sidebar" in kwargs: data["sidebar"] = kwargs["sidebar"] del kwargs["sidebar"] #POST request r = requests.post(crocodoc.base_url + "session/create", data) #Error? crocodoc.handleresponse(r) #Success? if "session" in r.json(): return r.json()["session"] else: raise crocodoc.CrocodocError("missing_session_key", r)