mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-16 19:28:07 -06:00
Use scope instead of manual request header updates in Toolbox.py
CURA-6983
This commit is contained in:
parent
6069096141
commit
f79949a150
1 changed files with 10 additions and 22 deletions
|
@ -24,6 +24,7 @@ from plugins.Toolbox.src.CloudApiModel import CloudApiModel
|
||||||
from .AuthorsModel import AuthorsModel
|
from .AuthorsModel import AuthorsModel
|
||||||
from .PackagesModel import PackagesModel
|
from .PackagesModel import PackagesModel
|
||||||
from .CloudSync.SubscribedPackagesModel import SubscribedPackagesModel
|
from .CloudSync.SubscribedPackagesModel import SubscribedPackagesModel
|
||||||
|
from .UltimakerCloudScope import UltimakerCloudScope
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from UM.TaskManagement.HttpRequestData import HttpRequestData
|
from UM.TaskManagement.HttpRequestData import HttpRequestData
|
||||||
|
@ -46,8 +47,7 @@ class Toolbox(QObject, Extension):
|
||||||
self._download_request_data = None # type: Optional[HttpRequestData]
|
self._download_request_data = None # type: Optional[HttpRequestData]
|
||||||
self._download_progress = 0 # type: float
|
self._download_progress = 0 # type: float
|
||||||
self._is_downloading = False # type: bool
|
self._is_downloading = False # type: bool
|
||||||
self._request_headers = dict() # type: Dict[str, str] # todo DRY headers, use scope
|
self._scope = UltimakerCloudScope(application)
|
||||||
self._updateRequestHeader()
|
|
||||||
|
|
||||||
self._request_urls = {} # type: Dict[str, str]
|
self._request_urls = {} # type: Dict[str, str]
|
||||||
self._to_update = [] # type: List[str] # Package_ids that are waiting to be updated
|
self._to_update = [] # type: List[str] # Package_ids that are waiting to be updated
|
||||||
|
@ -105,7 +105,6 @@ class Toolbox(QObject, Extension):
|
||||||
self._restart_dialog_message = "" # type: str
|
self._restart_dialog_message = "" # type: str
|
||||||
|
|
||||||
self._application.initializationFinished.connect(self._onAppInitialized)
|
self._application.initializationFinished.connect(self._onAppInitialized)
|
||||||
self._application.getCuraAPI().account.accessTokenChanged.connect(self._updateRequestHeader)
|
|
||||||
|
|
||||||
# Signals:
|
# Signals:
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
@ -127,7 +126,6 @@ class Toolbox(QObject, Extension):
|
||||||
|
|
||||||
## Go back to the start state (welcome screen or loading if no login required)
|
## Go back to the start state (welcome screen or loading if no login required)
|
||||||
def _restart(self):
|
def _restart(self):
|
||||||
self._updateRequestHeader()
|
|
||||||
# For an Essentials build, login is mandatory
|
# For an Essentials build, login is mandatory
|
||||||
if not self._application.getCuraAPI().account.isLoggedIn and ApplicationMetadata.IsEnterpriseVersion:
|
if not self._application.getCuraAPI().account.isLoggedIn and ApplicationMetadata.IsEnterpriseVersion:
|
||||||
self.setViewPage("welcome")
|
self.setViewPage("welcome")
|
||||||
|
@ -135,17 +133,6 @@ class Toolbox(QObject, Extension):
|
||||||
self.setViewPage("loading")
|
self.setViewPage("loading")
|
||||||
self._fetchPackageData()
|
self._fetchPackageData()
|
||||||
|
|
||||||
def _updateRequestHeader(self):
|
|
||||||
self._request_headers = {
|
|
||||||
"User-Agent": "%s/%s (%s %s)" % (self._application.getApplicationName(),
|
|
||||||
self._application.getVersion(),
|
|
||||||
platform.system(),
|
|
||||||
platform.machine())
|
|
||||||
}
|
|
||||||
access_token = self._application.getCuraAPI().account.accessToken
|
|
||||||
if access_token:
|
|
||||||
self._request_headers["Authorization"] = "Bearer {}".format(access_token)
|
|
||||||
|
|
||||||
def _resetUninstallVariables(self) -> None:
|
def _resetUninstallVariables(self) -> None:
|
||||||
self._package_id_to_uninstall = None # type: Optional[str]
|
self._package_id_to_uninstall = None # type: Optional[str]
|
||||||
self._package_name_to_uninstall = ""
|
self._package_name_to_uninstall = ""
|
||||||
|
@ -157,8 +144,8 @@ class Toolbox(QObject, Extension):
|
||||||
url = "{base_url}/packages/{package_id}/ratings".format(base_url = CloudApiModel.api_url, package_id = package_id)
|
url = "{base_url}/packages/{package_id}/ratings".format(base_url = CloudApiModel.api_url, package_id = package_id)
|
||||||
data = "{\"data\": {\"cura_version\": \"%s\", \"rating\": %i}}" % (Version(self._application.getVersion()), rating)
|
data = "{\"data\": {\"cura_version\": \"%s\", \"rating\": %i}}" % (Version(self._application.getVersion()), rating)
|
||||||
|
|
||||||
self._application.getHttpRequestManager().put(url, headers_dict = self._request_headers,
|
self._application.getHttpRequestManager().put(url, data = data.encode(), scope = self._scope)
|
||||||
data = data.encode())
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def subscribe(self, package_id: str) -> None:
|
def subscribe(self, package_id: str) -> None:
|
||||||
if self._application.getCuraAPI().account.isLoggedIn:
|
if self._application.getCuraAPI().account.isLoggedIn:
|
||||||
|
@ -538,15 +525,14 @@ class Toolbox(QObject, Extension):
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
def _makeRequestByType(self, request_type: str) -> None:
|
def _makeRequestByType(self, request_type: str) -> None:
|
||||||
Logger.log("d", "Requesting [%s] metadata from server.", request_type)
|
Logger.log("d", "Requesting [%s] metadata from server.", request_type)
|
||||||
self._updateRequestHeader()
|
|
||||||
url = self._request_urls[request_type]
|
url = self._request_urls[request_type]
|
||||||
|
|
||||||
callback = lambda r, rt = request_type: self._onDataRequestFinished(rt, r)
|
callback = lambda r, rt = request_type: self._onDataRequestFinished(rt, r)
|
||||||
error_callback = lambda r, e, rt = request_type: self._onDataRequestError(rt, r, e)
|
error_callback = lambda r, e, rt = request_type: self._onDataRequestError(rt, r, e)
|
||||||
self._application.getHttpRequestManager().get(url,
|
self._application.getHttpRequestManager().get(url,
|
||||||
headers_dict = self._request_headers,
|
|
||||||
callback = callback,
|
callback = callback,
|
||||||
error_callback = error_callback)
|
error_callback = error_callback,
|
||||||
|
scope=self._scope)
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def startDownload(self, url: str) -> None:
|
def startDownload(self, url: str) -> None:
|
||||||
|
@ -555,10 +541,12 @@ class Toolbox(QObject, Extension):
|
||||||
callback = lambda r: self._onDownloadFinished(r)
|
callback = lambda r: self._onDownloadFinished(r)
|
||||||
error_callback = lambda r, e: self._onDownloadFailed(r, e)
|
error_callback = lambda r, e: self._onDownloadFailed(r, e)
|
||||||
download_progress_callback = self._onDownloadProgress
|
download_progress_callback = self._onDownloadProgress
|
||||||
request_data = self._application.getHttpRequestManager().get(url, headers_dict = self._request_headers,
|
request_data = self._application.getHttpRequestManager().get(url,
|
||||||
callback = callback,
|
callback = callback,
|
||||||
error_callback = error_callback,
|
error_callback = error_callback,
|
||||||
download_progress_callback = download_progress_callback)
|
download_progress_callback = download_progress_callback,
|
||||||
|
scope=self._scope
|
||||||
|
)
|
||||||
|
|
||||||
self._download_request_data = request_data
|
self._download_request_data = request_data
|
||||||
self.setDownloadProgress(0)
|
self.setDownloadProgress(0)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue