Skip to content

Commit d8addbf

Browse files
committed
runtime query enhancements
1 parent ee9e616 commit d8addbf

File tree

13 files changed

+68
-33
lines changed

13 files changed

+68
-33
lines changed

examples/sharepoint/files/exists.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def try_get_file(web, url):
1818

1919

2020
ctx = ClientContext(test_team_site_url).with_credentials(test_client_credentials)
21-
file_url = '/sites/team/Shared Documents/big_buck_bunny111.mp4'
21+
file_url = 'Shared Documents/Financial Sample.xlsx'
2222
file = try_get_file(ctx.web, file_url)
2323
if file is None:
2424
print("File not found")
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1+
"""
2+
Retrieves the permissions on the file that are assigned to the current user.
3+
"""
14
from pprint import pprint
25

36
from office365.sharepoint.client_context import ClientContext
4-
from office365.sharepoint.listitems.listitem import ListItem
57
from tests import test_team_site_url, test_client_credentials
68

79
ctx = ClientContext(test_team_site_url).with_credentials(test_client_credentials)
8-
file_url = '/sites/team/Shared Documents/big_buck_bunny.mp4'
10+
file_url = 'Shared Documents/big_buck_bunny.mp4'
911
file = ctx.web.get_file_by_server_relative_url(file_url)
10-
file_item = file.listItemAllFields.select(["EffectiveBasePermissions"]).get().execute_query() # type: ListItem
11-
print(file_item.effective_base_permissions.permission_levels)
12+
file_item = file.listItemAllFields.select(["EffectiveBasePermissions"]).get().execute_query()
13+
pprint(file_item.effective_base_permissions.permission_levels)
1214

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1+
"""
2+
Retrieves versions of the file
3+
"""
4+
15
from office365.sharepoint.client_context import ClientContext
6+
from office365.sharepoint.files.versions.version import FileVersion
27
from tests import test_team_site_url, test_client_credentials
38

49
ctx = ClientContext(test_team_site_url).with_credentials(test_client_credentials)
5-
file_url = "/sites/team/Shared Documents/SharePoint User Guide.docx"
6-
version = ctx.web.get_file_by_server_relative_path(file_url).versions.get_by_id(1).expand(["CreatedBy"]).get().execute_query()
7-
print(version.created_by.login_name)
10+
file_url = "Shared Documents/SharePoint User Guide.docx"
11+
versions = ctx.web.get_file_by_server_relative_path(file_url).versions.expand(["CreatedBy"]).get().execute_query()
12+
for version in versions: # type: FileVersion
13+
print(version.created_by.login_name)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""
2-
Demonstrates how to upload 'small' files (up to 4MB in size)
2+
Demonstrates how to upload a small files (up to 4MB in size)
33
"""
44

55
from office365.sharepoint.client_context import ClientContext
@@ -9,7 +9,7 @@
99

1010
list_title = "Documents"
1111
folder = ctx.web.lists.get_by_title(list_title).root_folder
12-
path = "../../data/report #123.csv"
12+
path = "../../data/SharePoint User Guide.docx"
1313
with open(path, 'rb') as f:
1414
file = folder.files.upload(f).execute_query()
1515
print("File has been uploaded into: {0}".format(file.serverRelativeUrl))

examples/sharepoint/sites/create_comm_site.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@
88
title = "Communication Site"
99
site = ctx.create_communication_site(alias, title).execute_query()
1010
print(site.url)
11+
12+
print("Cleaning up resources...")
13+
site.delete_object().execute_query()

examples/sharepoint/sites/create_comm_site_with_owner.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
"""
2+
Creates a modern site
3+
"""
14
import uuid
25

36
from office365.sharepoint.client_context import ClientContext
@@ -8,3 +11,6 @@
811
site_alias = "commsite_{0}".format(uuid.uuid4().hex)
912
site = client.create_modern_site("Comm Site", site_alias, owner).execute_query()
1013
print("Site has been created at url: {0}".format(site.url))
14+
15+
print("Cleaning up resources...")
16+
site.delete_object().execute_query()

examples/sharepoint/sites/create_team_site.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
from random import randint
1+
"""
2+
Creates Team site
3+
"""
24

35
from office365.sharepoint.client_context import ClientContext
4-
from tests import test_site_url, test_user_credentials
6+
from tests import test_site_url, test_user_credentials, create_unique_name
57

6-
alias = str(randint(0, 10000))
8+
alias = create_unique_name("teamsite")
79
title = "Team Site"
810
ctx = ClientContext(test_site_url).with_credentials(test_user_credentials)
911

office365/runtime/odata/request.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,11 @@ def default_json_format(self):
3232

3333
def build_request(self, query):
3434
"""
35+
Builds a request
36+
3537
:type query: office365.runtime.queries.client_query.ClientQuery
3638
"""
3739
request = RequestOptions(query.url)
38-
# set method
3940
request.method = HttpMethod.Get
4041
if isinstance(query, DeleteEntityQuery):
4142
request.method = HttpMethod.Post
@@ -64,7 +65,7 @@ def process_response(self, response, query):
6465
else:
6566
if isinstance(json_format, JsonLightFormat):
6667
if isinstance(query, ServiceOperationQuery) or isinstance(query, FunctionQuery):
67-
json_format.function = query.method_name
68+
json_format.function = query.name
6869

6970
self.map_json(response.json(), return_type, json_format)
7071

office365/runtime/queries/client_query.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ def url(self):
3636
else:
3737
return self.context.service_root_url()
3838

39+
@property
40+
def path(self):
41+
if self.binding_type is not None:
42+
return self.binding_type.resource_path
43+
else:
44+
return None
45+
3946
@property
4047
def context(self):
4148
return self._context

office365/runtime/queries/function.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from office365.runtime.odata.path_builder import ODataPathBuilder
1+
from office365.runtime.paths.service_operation import ServiceOperationPath
22
from office365.runtime.queries.client_query import ClientQuery
33

44

@@ -23,11 +23,15 @@ def __init__(self, binding_type,
2323
self._method_name = method_name
2424
self._method_params = method_params
2525

26+
@property
27+
def path(self):
28+
return ServiceOperationPath(self._method_name, self._method_params, self.binding_type.resource_path)
29+
2630
@property
2731
def url(self):
2832
orig_url = super(FunctionQuery, self).url
29-
return "/".join([orig_url, ODataPathBuilder.build(self._method_name, self._method_params)])
33+
return "/".join([orig_url, self.path.segment])
3034

3135
@property
32-
def method_name(self):
36+
def name(self):
3337
return self._method_name

0 commit comments

Comments
 (0)