Browse Source

Use API endpoint for requesting package_ids

Use new api endpoint for requesting specific package_ids so we don't have to filter ourselves.

CURA-6990
c.lamboo 2 years ago
parent
commit
9c02f6500d

+ 1 - 2
plugins/Marketplace/InstallMissingPackagesDialog.py

@@ -26,8 +26,7 @@ class InstallMissingPackageDialog(QObject):
         self._restart_needed = False
         self._package_metadata: List[Dict[str, str]] = packages_metadata
 
-        self._package_model = MissingPackageList()
-        self._package_model.setPackageIds(packages_metadata)
+        self._package_model = MissingPackageList(packages_metadata)
 
     def show(self):
         plugin_path = self._plugin_registry.getPluginPath("Marketplace")

+ 3 - 9
plugins/Marketplace/MissingPackageList.py

@@ -17,16 +17,10 @@ if TYPE_CHECKING:
 catalog = i18nCatalog("cura")
 
 class MissingPackageList(RemotePackageList):
-    def __init__(self, parent: Optional["QObject"] = None) -> None:
+    def __init__(self, packages: List[Dict[str, str]], parent: Optional["QObject"] = None) -> None:
         super().__init__(parent)
         self._package_metadata: List[Dict[str, str]] = []
         # self.packageTypeFilter = None # This will be our new filter
         self._package_type_filter = "material"
-
-    def setPackageIds(self, packages: List[Dict[str, str]]) -> None:
-        self._package_metadata = packages
-        search_string = ", ".join(map(lambda package: package["id"], packages))
-        # self.setSearchString(search_string)
-        self.setSearchString("ABS")
-
-
+        self._search_type = "package_ids"
+        self._requested_search_string = ",".join(map(lambda package: package["id"], packages))

+ 2 - 1
plugins/Marketplace/RemotePackageList.py

@@ -28,6 +28,7 @@ class RemotePackageList(PackageList):
         self._package_type_filter = ""
         self._requested_search_string = ""
         self._current_search_string = ""
+        self._search_type = "search"
         self._request_url = self._initialRequestUrl()
         self._ongoing_requests["get_packages"] = None
         self.isLoadingChanged.connect(self._onLoadingChanged)
@@ -100,7 +101,7 @@ class RemotePackageList(PackageList):
         if self._package_type_filter != "":
             request_url += f"&package_type={self._package_type_filter}"
         if self._current_search_string != "":
-            request_url += f"&search={self._current_search_string}"
+            request_url += f"&{self._search_type}={self._current_search_string}"
         return request_url
 
     def _parseResponse(self, reply: "QNetworkReply") -> None: