brynq-sdk-sharepoint 1.0.0__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/PKG-INFO +1 -1
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk/sharepoint/sharepoint.py +31 -14
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/PKG-INFO +1 -1
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/setup.py +1 -1
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk/sharepoint/__init__.py +0 -0
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/SOURCES.txt +0 -0
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/dependency_links.txt +0 -0
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/not-zip-safe +0 -0
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/requires.txt +0 -0
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/top_level.txt +0 -0
- {brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/setup.cfg +0 -0
{brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk/sharepoint/sharepoint.py
RENAMED
|
@@ -34,7 +34,7 @@ class Sharepoint(BrynQ):
|
|
|
34
34
|
if self.debug:
|
|
35
35
|
print(f"site_id: {self.site_id}, json_subset: {self.json_subset}, credentials: {credentials}, brynq_system_id: {self.brynq_system_id}")
|
|
36
36
|
|
|
37
|
-
def
|
|
37
|
+
def _get_sharepoint_headers(self):
|
|
38
38
|
access_token = self.refresh_system_credential(system='sharepoint', system_id=self.brynq_system_id)['access_token']
|
|
39
39
|
headers = {'Authorization': f'Bearer {access_token}'}
|
|
40
40
|
if self.debug:
|
|
@@ -51,7 +51,7 @@ class Sharepoint(BrynQ):
|
|
|
51
51
|
url = f'https://graph.microsoft.com/v1.0/sites?search={site_name}'
|
|
52
52
|
if self.debug:
|
|
53
53
|
print(f"url: {url}")
|
|
54
|
-
response = requests.get(url=url, headers=self.
|
|
54
|
+
response = requests.get(url=url, headers=self._get_sharepoint_headers())
|
|
55
55
|
response.raise_for_status()
|
|
56
56
|
site_id = response.json()['value'][0]['id']
|
|
57
57
|
if self.debug:
|
|
@@ -67,7 +67,7 @@ class Sharepoint(BrynQ):
|
|
|
67
67
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives'
|
|
68
68
|
if self.debug:
|
|
69
69
|
print(f"url: {url}")
|
|
70
|
-
response = requests.get(url, headers=self.
|
|
70
|
+
response = requests.get(url, headers=self._get_sharepoint_headers())
|
|
71
71
|
response.raise_for_status()
|
|
72
72
|
drive_id = response.json()['value'][self.json_subset]['id']
|
|
73
73
|
if self.debug:
|
|
@@ -85,7 +85,7 @@ class Sharepoint(BrynQ):
|
|
|
85
85
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/root:/{remote_file_path}:/createUploadSession'
|
|
86
86
|
if self.debug:
|
|
87
87
|
print(f"url: {url}")
|
|
88
|
-
headers = self.
|
|
88
|
+
headers = self._get_sharepoint_headers()
|
|
89
89
|
response = requests.post(url, headers=headers)
|
|
90
90
|
response.raise_for_status()
|
|
91
91
|
upload_url = response.json()['uploadUrl']
|
|
@@ -96,8 +96,10 @@ class Sharepoint(BrynQ):
|
|
|
96
96
|
headers_upload = {'Content-Type': 'application/json',
|
|
97
97
|
'Content-Length': f'{file_bytes}',
|
|
98
98
|
'Content-Range': f'bytes 0-{file_bytes - 1}/{file_bytes}'}
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
response_upload = requests.put(url=upload_url, headers=headers_upload, data=file_input)
|
|
100
|
+
response_upload.raise_for_status()
|
|
101
|
+
|
|
102
|
+
return response_upload
|
|
101
103
|
|
|
102
104
|
def open_file(self, remote_file_path: str) -> bytes:
|
|
103
105
|
"""
|
|
@@ -109,7 +111,7 @@ class Sharepoint(BrynQ):
|
|
|
109
111
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/root:/{remote_file_path}'
|
|
110
112
|
if self.debug:
|
|
111
113
|
print(f"url: {url}")
|
|
112
|
-
headers = self.
|
|
114
|
+
headers = self._get_sharepoint_headers()
|
|
113
115
|
response = requests.get(url=url, headers=headers)
|
|
114
116
|
response.raise_for_status()
|
|
115
117
|
download_url = response.json()['@microsoft.graph.downloadUrl']
|
|
@@ -128,7 +130,7 @@ class Sharepoint(BrynQ):
|
|
|
128
130
|
"""
|
|
129
131
|
driveid = self.get_driveid()
|
|
130
132
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{driveid}/root:/{remote_file_path}'
|
|
131
|
-
headers = self.
|
|
133
|
+
headers = self._get_sharepoint_headers()
|
|
132
134
|
response = requests.get(url=url, headers=headers)
|
|
133
135
|
response.raise_for_status()
|
|
134
136
|
download_url = response.json()['@microsoft.graph.downloadUrl']
|
|
@@ -137,6 +139,8 @@ class Sharepoint(BrynQ):
|
|
|
137
139
|
with open(file=f'{local_file_path}', mode='wb') as f:
|
|
138
140
|
f.write(BytesIO(response_download.content).read())
|
|
139
141
|
|
|
142
|
+
return response_download
|
|
143
|
+
|
|
140
144
|
def download_files(self, local_folder_path: str, remote_folder_path: str):
|
|
141
145
|
"""
|
|
142
146
|
This method downloads a file from sharepoint to the local machine.
|
|
@@ -150,11 +154,13 @@ class Sharepoint(BrynQ):
|
|
|
150
154
|
if self.debug:
|
|
151
155
|
print(f"folder_content: {folder_content}")
|
|
152
156
|
filecount = 0
|
|
157
|
+
|
|
158
|
+
responses = []
|
|
153
159
|
for file in folder_content:
|
|
154
160
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{driveid}/root:/{remote_folder_path}{file["name"]}'
|
|
155
161
|
if self.debug:
|
|
156
162
|
print(f"url: {url}")
|
|
157
|
-
headers = self.
|
|
163
|
+
headers = self._get_sharepoint_headers()
|
|
158
164
|
response = requests.get(url=url, headers=headers)
|
|
159
165
|
response.raise_for_status()
|
|
160
166
|
download_url = response.json()['@microsoft.graph.downloadUrl']
|
|
@@ -162,8 +168,11 @@ class Sharepoint(BrynQ):
|
|
|
162
168
|
with open(file=f'{local_folder_path}{file["name"]}', mode='wb') as f:
|
|
163
169
|
f.write(BytesIO(response_download.content).read())
|
|
164
170
|
filecount += 1
|
|
171
|
+
responses.append(response_download)
|
|
165
172
|
print(f'{filecount} files downloaded')
|
|
166
173
|
|
|
174
|
+
return responses
|
|
175
|
+
|
|
167
176
|
def list_dir(self, remote_folder_path: str, get_files_from_nested_folders: bool = False) -> [json, typing.Generator]:
|
|
168
177
|
"""
|
|
169
178
|
Fetch the contents of the API and return the "children"
|
|
@@ -178,7 +187,7 @@ class Sharepoint(BrynQ):
|
|
|
178
187
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/root:/{remote_folder_path}?expand=children'
|
|
179
188
|
if self.debug:
|
|
180
189
|
print(f"url: {url}")
|
|
181
|
-
response = requests.get(url, headers=self.
|
|
190
|
+
response = requests.get(url, headers=self._get_sharepoint_headers(), timeout=120)
|
|
182
191
|
response.raise_for_status()
|
|
183
192
|
|
|
184
193
|
return response.json()['children']
|
|
@@ -202,9 +211,11 @@ class Sharepoint(BrynQ):
|
|
|
202
211
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/root:/{remote_file_path}'
|
|
203
212
|
if self.debug:
|
|
204
213
|
print(f"url: {url}")
|
|
205
|
-
response = requests.delete(url=url, headers=self.
|
|
214
|
+
response = requests.delete(url=url, headers=self._get_sharepoint_headers())
|
|
206
215
|
response.raise_for_status()
|
|
207
216
|
|
|
217
|
+
return response
|
|
218
|
+
|
|
208
219
|
def remove_files(self, remote_folder_path: str):
|
|
209
220
|
"""
|
|
210
221
|
Remove a file from Sharepoint
|
|
@@ -212,12 +223,16 @@ class Sharepoint(BrynQ):
|
|
|
212
223
|
"""
|
|
213
224
|
drive_id = self.get_driveid()
|
|
214
225
|
folder_content = self.list_dir(remote_folder_path=remote_folder_path)
|
|
226
|
+
responses = []
|
|
215
227
|
for file in folder_content:
|
|
216
228
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/root:/{remote_folder_path}{file["name"]}'
|
|
217
229
|
if self.debug:
|
|
218
230
|
print(f"url: {url}")
|
|
219
|
-
response = requests.delete(url=url, headers=self.
|
|
231
|
+
response = requests.delete(url=url, headers=self._get_sharepoint_headers())
|
|
220
232
|
response.raise_for_status()
|
|
233
|
+
responses.append(response)
|
|
234
|
+
|
|
235
|
+
return responses
|
|
221
236
|
|
|
222
237
|
def remove_folder(self, folder_id: str):
|
|
223
238
|
"""
|
|
@@ -228,5 +243,7 @@ class Sharepoint(BrynQ):
|
|
|
228
243
|
url = f'https://graph.microsoft.com/v1.0/sites/{self.site_id}/drives/{drive_id}/items/{folder_id}'
|
|
229
244
|
if self.debug:
|
|
230
245
|
print(f"url: {url}")
|
|
231
|
-
response = requests.delete(url=url, headers=self.
|
|
232
|
-
response.raise_for_status()
|
|
246
|
+
response = requests.delete(url=url, headers=self._get_sharepoint_headers())
|
|
247
|
+
response.raise_for_status()
|
|
248
|
+
|
|
249
|
+
return response
|
|
File without changes
|
{brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{brynq_sdk_sharepoint-1.0.0 → brynq_sdk_sharepoint-1.1.0}/brynq_sdk_sharepoint.egg-info/requires.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|