|
4 | 4 | import datetime
|
5 | 5 | import email.utils
|
6 | 6 | import enum
|
| 7 | +import warnings |
7 | 8 |
|
8 | 9 | from .. import _misc
|
9 | 10 |
|
@@ -299,77 +300,100 @@ class Share:
|
299 | 300 | """Information about Share."""
|
300 | 301 |
|
301 | 302 | def __init__(self, raw_data: dict):
|
302 |
| - self.raw_data = raw_data |
| 303 | + self._raw_data = raw_data |
| 304 | + |
| 305 | + def __getattr__(self, name): |
| 306 | + if name == "raw_data": |
| 307 | + warnings.warn( |
| 308 | + f"{name} is deprecated and will be removed in 0.9.0 version.", DeprecationWarning, stacklevel=2 |
| 309 | + ) |
| 310 | + return self._raw_data |
| 311 | + return getattr(self, name) |
303 | 312 |
|
304 | 313 | @property
|
305 | 314 | def share_id(self) -> int:
|
306 | 315 | """Unique ID of the share."""
|
307 |
| - return int(self.raw_data["id"]) |
| 316 | + return int(self._raw_data["id"]) |
308 | 317 |
|
309 | 318 | @property
|
310 | 319 | def share_type(self) -> ShareType:
|
311 | 320 | """Type of the share."""
|
312 |
| - return ShareType(int(self.raw_data["share_type"])) |
| 321 | + return ShareType(int(self._raw_data["share_type"])) |
313 | 322 |
|
314 | 323 | @property
|
315 | 324 | def share_with(self) -> str:
|
316 | 325 | """To whom Share was created."""
|
317 |
| - return self.raw_data["share_with"] |
| 326 | + return self._raw_data["share_with"] |
318 | 327 |
|
319 | 328 | @property
|
320 | 329 | def permissions(self) -> FilePermissions:
|
321 | 330 | """Recipient permissions."""
|
322 |
| - return FilePermissions(int(self.raw_data["permissions"])) |
| 331 | + return FilePermissions(int(self._raw_data["permissions"])) |
323 | 332 |
|
324 | 333 | @property
|
325 | 334 | def url(self) -> str:
|
326 | 335 | """URL at which Share is avalaible."""
|
327 |
| - return self.raw_data.get("url", "") |
| 336 | + return self._raw_data.get("url", "") |
328 | 337 |
|
329 | 338 | @property
|
330 | 339 | def path(self) -> str:
|
331 | 340 | """Share path relative to the user's root directory."""
|
332 |
| - return self.raw_data.get("path", "").lstrip("/") |
| 341 | + return self._raw_data.get("path", "").lstrip("/") |
333 | 342 |
|
334 | 343 | @property
|
335 | 344 | def label(self) -> str:
|
336 | 345 | """Label for the Shared object."""
|
337 |
| - return self.raw_data.get("label", "") |
| 346 | + return self._raw_data.get("label", "") |
338 | 347 |
|
339 | 348 | @property
|
340 | 349 | def note(self) -> str:
|
341 | 350 | """Note for the Shared object."""
|
342 |
| - return self.raw_data.get("note", "") |
| 351 | + return self._raw_data.get("note", "") |
343 | 352 |
|
344 | 353 | @property
|
345 | 354 | def mimetype(self) -> str:
|
346 | 355 | """Mimetype of the Shared object."""
|
347 |
| - return self.raw_data.get("mimetype", "") |
| 356 | + return self._raw_data.get("mimetype", "") |
348 | 357 |
|
349 | 358 | @property
|
350 | 359 | def share_owner(self) -> str:
|
351 | 360 | """Share's creator ID."""
|
352 |
| - return self.raw_data.get("uid_owner", "") |
| 361 | + return self._raw_data.get("uid_owner", "") |
353 | 362 |
|
354 | 363 | @property
|
355 | 364 | def file_owner(self) -> str:
|
356 | 365 | """File/directory owner ID."""
|
357 |
| - return self.raw_data.get("uid_file_owner", "") |
| 366 | + return self._raw_data.get("uid_file_owner", "") |
358 | 367 |
|
359 | 368 | @property
|
360 | 369 | def password(self) -> str:
|
361 | 370 | """Password to access share."""
|
362 |
| - return self.raw_data.get("password", "") |
| 371 | + return self._raw_data.get("password", "") |
363 | 372 |
|
364 | 373 | @property
|
365 | 374 | def send_password_by_talk(self) -> bool:
|
366 | 375 | """Flag indicating was password send by Talk."""
|
367 |
| - return self.raw_data.get("send_password_by_talk", False) |
| 376 | + return self._raw_data.get("send_password_by_talk", False) |
368 | 377 |
|
369 | 378 | @property
|
370 | 379 | def expire_date(self) -> datetime.datetime:
|
371 | 380 | """Share expiration time."""
|
372 |
| - return _misc.nc_iso_time_to_datetime(self.raw_data.get("expiration", "")) |
| 381 | + return _misc.nc_iso_time_to_datetime(self._raw_data.get("expiration", "")) |
| 382 | + |
| 383 | + @property |
| 384 | + def file_source_id(self) -> int: |
| 385 | + """File source ID.""" |
| 386 | + return self._raw_data.get("file_source", 0) |
| 387 | + |
| 388 | + @property |
| 389 | + def can_edit(self) -> bool: |
| 390 | + """Does caller have ``write`` permissions.""" |
| 391 | + return self._raw_data.get("can_edit", False) |
| 392 | + |
| 393 | + @property |
| 394 | + def can_delete(self) -> bool: |
| 395 | + """Does caller have ``delete`` permissions.""" |
| 396 | + return self._raw_data.get("can_delete", False) |
373 | 397 |
|
374 | 398 | def __str__(self):
|
375 | 399 | return (
|
|
0 commit comments