def upload(self, name, content): """The simple upload API allows you to provide the contents of a new file or update the contents of an existing file in a single API call. This method only supports files up to 4MB in size. """ drive_item = DriveItem(self.context, ResourcePathUrl(self.context, self.resourcePath, name)) qry = ClientQuery(r"{0}content".format(drive_item.resourceUrl), HttpMethod.Put, content) self.context.add_query(qry, drive_item) return drive_item
def add(self, web_creation_information): web = Web(self.context) qry = ClientQuery(self.resource_url + "/add", ActionType.PostMethod, web_creation_information) self.context.add_query(qry, web) self.add_child(web) return web
def add_user(self, login_name): user = User(self.context) user.set_property('LoginName', login_name) qry = ClientQuery(self.resourceUrl, HttpMethod.Post, user) self.context.add_query(qry, user) self.add_child(user) return user
def load(self, client_object, properties_to_retrieve=[]): """Prepare query""" if properties_to_retrieve: select_expr = ",".join(properties_to_retrieve) client_object = client_object.select(select_expr) qry = ClientQuery(client_object.url, ActionType.ReadEntry) self.pending_request.add_query(qry, client_object)
def add_item(self, list_item_creation_information): """The recommended way to add a list item is to send a POST request to the ListItemCollection resource endpoint, as shown in ListItemCollection request examples.""" item = ListItem(self.context, None, list_item_creation_information) qry = ClientQuery(self.url + "/items", ActionType.CreateEntry, item.convert_to_payload()) self.context.add_query(qry, item) return item
def convert(self, format_name): """Converts the contents of an item in a specific format""" url = r"{0}content?format={1}".format(self.resourceUrl, format_name) qry = ClientQuery(url, HttpMethod.Get) result = ClientResult(None) self.context.add_query(qry, result) return result
def add(self, web_creation_information): web = Web(self.context) qry = ClientQuery(self.resourceUrl + "/add", HttpMethod.Post, web_creation_information) self.context.add_query(qry, web) self.add_child(web) return web
def add(self, folder_url): from office365.sharepoint.folder import Folder folder = Folder(self.context) folder.set_property("ServerRelativeUrl", folder_url) qry = ClientQuery(self.url, ActionType.CreateEntry, folder.convert_to_payload()) self.context.add_query(qry, folder) return folder
def get_all_webs(self): """Returns a collection containing a flat list of all Web objects in the Web object.""" result = ClientResult(self.webs) qry = ClientQuery(self.webs, None, None, result) self.context.add_query(qry) self.context.afterExecuteOnce += self._load_sub_webs return result
def add(self, web_creation_information): web_creation_information._include_metadata = self.include_metadata payload = web_creation_information.payload web = Web(self.context) qry = ClientQuery(self.url + "/add", ActionType.PostMethod, payload) self.context.add_query(qry, web) self.add_child(web) return web
def download(self): """Download the contents of the primary stream (file) of a DriveItem. Only driveItems with the file property can be downloaded. """ url = r"{0}content".format(self.resourceUrl) qry = ClientQuery(url, HttpMethod.Get) result = ClientResult(None) self.context.add_query(qry, result) return result
def add(self, group_creation_information): """Creates a Group resource""" group = Group(self.context) qry = ClientQuery(self.resourceUrl, HttpMethod.Post, group_creation_information) self.context.add_query(qry, group) self.add_child(group) return group
def add_item(self, list_item_creation_information): """The recommended way to add a list item is to send a POST request to the ListItemCollection resource endpoint, as shown in ListItemCollection request examples.""" item = ListItem(self.context, None, list_item_creation_information) item._parent_collection = self qry = ClientQuery(self.resourceUrl + "/items", HttpMethod.Post, item) self.context.add_query(qry, item) return item
def add(self, group_creation_information): """Creates a Group resource""" group = Group(self.context) qry = ClientQuery(self.url, ActionType.CreateEntry, group_creation_information) self.context.add_query(qry, group) self.add_child(group) return group
def load(self, client_object, properties_to_retrieve=None): """Prepare query""" if properties_to_retrieve is None: properties_to_retrieve = [] if properties_to_retrieve: select_expr = ",".join(properties_to_retrieve) client_object = client_object.select(select_expr) qry = ClientQuery(client_object.resourceUrl, HttpMethod.Get) self.pending_request.add_query(qry, client_object)
def get_all_webs(self): """Returns a collection containing a flat list of all Web objects in the Web object.""" result = ClientResult(self.webs) qry = ClientQuery(self.webs, None, None, result) self.context.add_query(qry) def _load_sub_webs(resp): self._load_sub_webs_inner(result.value) self.context.after_execute(_load_sub_webs) return result
def create_folder(self, name): """Create a new folder or DriveItem in a Drive with a specified parent item or path.""" drive_item = DriveItem(self.context, None) drive_item._parent_collection = self.children payload = { "name": name, "folder": {}, "@microsoft.graph.conflictBehavior": ConflictBehavior.Rename } qry = ClientQuery(self.resourceUrl + "/children", HttpMethod.Post, payload) self.context.add_query(qry, drive_item) return drive_item
def delete_list_item(self, list_name, item_id): resource_url = self.service_root_url + list_name + "(" + str(item_id) + ")" qry = ClientQuery(resource_url, ActionType.DeleteEntity) self.add_query(qry)
def add(self, folder_url): folder = Folder(self.context) folder.set_property("ServerRelativeUrl", folder_url) qry = ClientQuery(self.resourceUrl, HttpMethod.Post, folder) self.context.add_query(qry, folder) return folder
def send_mail(self, message): """Send a new message on the fly""" url = self.resourceUrl + "/sendmail" qry = ClientQuery(url, HttpMethod.Post, message) self.context.add_query(qry)
def load(self, client_object, properties_to_retrieve=[]): """Prepare query""" qry = ClientQuery(client_object.url, ActionType.ReadEntry) self.pending_request.add_query(qry, client_object)
def update_list_item(self, list_name, item_id, field_values): resource_url = self.service_root_url + list_name + "(" + str(item_id) + ")" qry = ClientQuery(resource_url, ActionType.UpdateEntity, field_values) self.add_query(qry)
def add(self, folder_url): folder = Folder(self.context) folder.set_property("ServerRelativeUrl", folder_url) qry = ClientQuery(self.resource_url, ActionType.CreateEntity, folder) self.context.add_query(qry, folder) return folder