Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNino van Hooff <ninovanhooff@gmail.com>2020-02-28 19:37:21 +0300
committerNino van Hooff <ninovanhooff@gmail.com>2020-02-28 19:37:21 +0300
commit762f699f6462b861496462152035246aa14e3c19 (patch)
tree6e2c4a66068d20e2b3d50b2976e79ae9ba710b11 /plugins/CuraDrive
parent19c3f765f585908d1921d74fbc71c21c1e3d65cf (diff)
Refactor UploadBackupJob to use HttpRequestManager
Diffstat (limited to 'plugins/CuraDrive')
-rw-r--r--plugins/CuraDrive/src/DriveApiService.py14
-rw-r--r--plugins/CuraDrive/src/UploadBackupJob.py33
2 files changed, 25 insertions, 22 deletions
diff --git a/plugins/CuraDrive/src/DriveApiService.py b/plugins/CuraDrive/src/DriveApiService.py
index 0168d8de2b..167eae4424 100644
--- a/plugins/CuraDrive/src/DriveApiService.py
+++ b/plugins/CuraDrive/src/DriveApiService.py
@@ -63,7 +63,6 @@ class DriveApiService:
scope=self._jsonCloudScope
)
-
def createBackup(self) -> None:
self.creatingStateChanged.emit(is_creating = True)
@@ -87,9 +86,9 @@ class DriveApiService:
upload_backup_job.start()
def _onUploadFinished(self, job: "UploadBackupJob") -> None:
- if job.backup_upload_error_message != "":
+ if job.backup_upload_error_text != "":
# If the job contains an error message we pass it along so the UI can display it.
- self.creatingStateChanged.emit(is_creating = False, error_message = job.backup_upload_error_message)
+ self.creatingStateChanged.emit(is_creating = False, error_message = job.backup_upload_error_text)
else:
self.creatingStateChanged.emit(is_creating = False)
@@ -110,7 +109,7 @@ class DriveApiService:
)
def _onRestoreRequestCompleted(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None, backup = None):
- if not DriveApiService._replyIndicatesSuccess(reply, error):
+ if not HttpRequestManager.replyIndicatesSuccess(reply, error):
Logger.log("w",
"Requesting backup failed, response code %s while trying to connect to %s",
reply.attribute(QNetworkRequest.HttpStatusCodeAttribute), reply.url())
@@ -153,11 +152,6 @@ class DriveApiService:
local_md5_hash = base64.b64encode(hashlib.md5(read_backup.read()).digest(), altchars = b"_-").decode("utf-8")
return known_hash == local_md5_hash
- @staticmethod
- def _replyIndicatesSuccess(reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None):
- """Returns whether reply status code indicates success and error is None"""
- return error is None and 200 <= reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) < 300
-
def deleteBackup(self, backup_id: str, callable: Callable[[bool], None]):
def finishedCallback(reply: QNetworkReply, ca=callable) -> None:
@@ -174,7 +168,7 @@ class DriveApiService:
)
def _onDeleteRequestCompleted(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None, callable = None):
- callable(DriveApiService._replyIndicatesSuccess(reply, error))
+ callable(HttpRequestManager.replyIndicatesSuccess(reply, error))
# Request a backup upload slot from the API.
# \param backup_metadata: A dict containing some meta data about the backup.
diff --git a/plugins/CuraDrive/src/UploadBackupJob.py b/plugins/CuraDrive/src/UploadBackupJob.py
index 2e76ed9b4b..5ac48c7512 100644
--- a/plugins/CuraDrive/src/UploadBackupJob.py
+++ b/plugins/CuraDrive/src/UploadBackupJob.py
@@ -1,11 +1,11 @@
# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
-
-import requests
+from PyQt5.QtNetwork import QNetworkReply
from UM.Job import Job
from UM.Logger import Logger
from UM.Message import Message
+from UM.TaskManagement.HttpRequestManager import HttpRequestManager
from UM.i18n import i18nCatalog
catalog = i18nCatalog("cura")
@@ -21,21 +21,30 @@ class UploadBackupJob(Job):
self._signed_upload_url = signed_upload_url
self._backup_zip = backup_zip
self._upload_success = False
- self.backup_upload_error_message = ""
+ self.backup_upload_error_text = ""
+ self._message = None
def run(self) -> None:
- upload_message = Message(catalog.i18nc("@info:backup_status", "Uploading your backup..."), title = self.MESSAGE_TITLE, progress = -1)
- upload_message.show()
+ self._message = Message(catalog.i18nc("@info:backup_status", "Uploading your backup..."), title = self.MESSAGE_TITLE, progress = -1)
+ self._message.show()
- backup_upload = requests.put(self._signed_upload_url, data = self._backup_zip)
- upload_message.hide()
+ HttpRequestManager.getInstance().put(
+ self._signed_upload_url,
+ data = self._backup_zip
+ )
- if backup_upload.status_code >= 300:
- self.backup_upload_error_message = backup_upload.text
- Logger.log("w", "Could not upload backup file: %s", backup_upload.text)
- Message(catalog.i18nc("@info:backup_status", "There was an error while uploading your backup."), title = self.MESSAGE_TITLE).show()
- else:
+ def uploadFinishedCallback(self, reply: QNetworkReply, error: QNetworkReply.NetworkError):
+ self._message.hide()
+
+ self.backup_upload_error_text = HttpRequestManager.readText(reply)
+
+ if HttpRequestManager.replyIndicatesSuccess(reply, error):
self._upload_success = True
Message(catalog.i18nc("@info:backup_status", "Your backup has finished uploading."), title = self.MESSAGE_TITLE).show()
+ else:
+ self.backup_upload_error_text = self.backup_upload_error_text
+ Logger.log("w", "Could not upload backup file: %s", self.backup_upload_error_text)
+ Message(catalog.i18nc("@info:backup_status", "There was an error while uploading your backup."),
+ title=self.MESSAGE_TITLE).show()
self.finished.emit(self)