|
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