Browse Source

Unsubscribe from package when a license is declined (cloud flow)

CURA-6984
Nino van Hooff 5 years ago
parent
commit
4e8534b93b

+ 8 - 0
plugins/Toolbox/src/CloudApiModel.py

@@ -18,3 +18,11 @@ class CloudApiModel:
         cloud_api_root=cloud_api_root,
         cloud_api_version=cloud_api_version,
     )
+
+    ## https://api.ultimaker.com/cura-packages/v1/user/packages/{package_id}
+    @classmethod
+    def userPackageUrl(cls, package_id: str) -> str:
+
+        return (CloudApiModel.api_url_user_packages + "/{package_id}").format(
+            package_id=package_id
+        )

+ 5 - 0
plugins/Toolbox/src/CloudSync/CloudPackageManager.py

@@ -16,3 +16,8 @@ class CloudPackageManager:
                                   data=data.encode(),
                                   scope=self._scope
                                   )
+
+    def unsubscribe(self, package_id: str) -> None:
+        url = CloudApiModel.userPackageUrl(package_id)
+        self._request_manager.delete(url=url, scope=self._scope)
+

+ 1 - 2
plugins/Toolbox/src/CloudSync/SyncOrchestrator.py

@@ -83,8 +83,7 @@ class SyncOrchestrator(Extension):
                 self._cloud_package_manager.subscribe(item["package_id"])
                 has_changes = True
             else:
-                # todo unsubscribe declined packages
-                pass
+                self._cloud_package_manager.unsubscribe(item["package_id"])
             # delete temp file
             os.remove(item["package_path"])