Skip to content
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[metadata]

name = nextcloud-api-wrapper
version = 0.2.2
version = 0.2.3
description= Python wrapper for NextCloud api
long_description = file: README.rst
keywords = requests, api, wrapper, nextcloud, owncloud
Expand Down
14 changes: 8 additions & 6 deletions src/nextcloud/api_wrappers/share.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,13 +129,14 @@ def delete_share(self, sid):
return self.requester.delete(self.get_local_url(sid))

def update_share(self, sid,
permissions=None, password=None, public_upload=None, expire_date=""):
permissions=None, hide_download=None, password=None, public_upload=None, expire_date=""):
"""
Update a given share, only one value can be updated per request

Args:
sid (str): share id
permissions (int): sum of selected Permission attributes
hide_download (bool): bool, allow to show download button (true/false)
password (str): password to protect public link Share with
public_upload (bool): bool, allow public upload to a public shared folder (true/false)
expire_date (str): set an expire date for public link shares. Format: ‘YYYY-MM-DD’
Expand All @@ -145,18 +146,19 @@ def update_share(self, sid,
"""
params = dict(
permissions=permissions,
hideDownload=hide_download,
password=password,
expireDate=expire_date
)
if public_upload:
params["publicUpload"] = "true"
if public_upload is False:
else:
params["publicUpload"] = "false"

# check if only one param specified
specified_params_count = sum([int(bool(each)) for each in params.values()])
if specified_params_count > 1:
raise ValueError("Only one parameter for update can be specified per request")
if hide_download:
params["hideDownload"] = "true"
else:
params["hideDownload"] = "false"

url = self.get_local_url(sid)
return self.requester.put(url, data=params)