allow same name and add try for other requests

This commit is contained in:
Antonio J. Delgado 2024-11-11 10:19:56 +02:00
parent d120396957
commit 88b4dbf276

View file

@ -204,6 +204,7 @@ class NextcloudHandler:
def get(self, path):
'''Do a GET request'''
try:
r = requests.get(
f'{self.http}://{self.host}/{path}',
auth=(self.user, self.token), verify=self.ssl, headers=self.headers(),
@ -213,16 +214,26 @@ class NextcloudHandler:
if r.status_code == 200:
return r
elif r.status_code == 404:
self._log.error(f'File {path} does not exist')
self._log.error(
'Path %s does not exist',
path
)
sys.exit(3)
else:
self._log.error(r.status_code)
sys.exit(4)
except requests.exceptions.ReadTimeout as error:
self._log.error(
"Timeout (%s sec) error doing GET request. %s",
self.timeout,
error
)
def propfind(self, path):
'''Do a PROPFIND request'''
s = requests.Session()
s.auth = (self.user, self.token)
try:
r = s.request(
method='PROPFIND',
url=f'{self.http}://{self.host}/{path}',
@ -288,9 +299,16 @@ class NextcloudHandler:
"Nextcloud instance returned status code: %s",
r.status_code
)
except requests.exceptions.ReadTimeout as error:
self._log.error(
"Timeout (%s sec) error doing GET request. %s",
self.timeout,
error
)
def put(self, path, src=None):
'''Do a PUT request'''
try:
if src:
r = requests.put(
f'{self.http}://{self.host}/{path}',
@ -309,9 +327,16 @@ class NextcloudHandler:
"Nextcloud instance returned status code: %s",
r.status_code
)
except requests.exceptions.ReadTimeout as error:
self._log.error(
"Timeout (%s sec) error doing GET request. %s",
self.timeout,
error
)
def delete(self, path):
'''Do a DELETE request'''
try:
r = requests.delete(
f'{self.http}://{self.host}/{path}',
auth=(self.user, self.token), verify=self.ssl, timeout=self.timeout
@ -326,6 +351,12 @@ class NextcloudHandler:
"Nextcloud instance returned status code: %s",
r.status_code
)
except requests.exceptions.ReadTimeout as error:
self._log.error(
"Timeout (%s sec) error doing GET request. %s",
self.timeout,
error
)
def talk(self, message, channel):
'''Post in Talk/Chat'''
@ -335,7 +366,7 @@ class NextcloudHandler:
}
spreed_v1_path = "ocs/v2.php/apps/spreed/api/v1/chat"
try:
r = requests.post(
f'{self.http}://{self.host}/{spreed_v1_path}/{channel}',
data=body,
@ -351,6 +382,12 @@ class NextcloudHandler:
"Nextcloud instance returned status code: %s",
r.status_code
)
except requests.exceptions.ReadTimeout as error:
self._log.error(
"Timeout (%s sec) error doing GET request. %s",
self.timeout,
error
)
def request_passwords_session(self):
'''Request a Passwords API session'''
@ -539,8 +576,6 @@ r.status_code
for password in self.list_passwords():
if self.is_same_password(obj, password):
return True
if password['label'] == obj['label']:
return True
return False
def create_password(self, post_obj):