aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/flame
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-06-19 14:29:21 -0300
committerflow <flowlnlnln@gmail.com>2022-07-17 11:33:43 -0300
commit52c45c2d32e6bb10b2ca5db9b73cb91fac57c943 (patch)
treee649079aaef56c06f7329a51de48e371092d9c6e /launcher/modplatform/flame
parentfd6755c93f3f3f7551f9b7c11d1bbbb48c22e210 (diff)
downloadPrismLauncher-52c45c2d32e6bb10b2ca5db9b73cb91fac57c943.tar.gz
PrismLauncher-52c45c2d32e6bb10b2ca5db9b73cb91fac57c943.tar.bz2
PrismLauncher-52c45c2d32e6bb10b2ca5db9b73cb91fac57c943.zip
feat: add some mod api calls
- Get Project: Already existed but required a specific caller type. This is more general. - Get Projects: A single call to multiple of the above Both providers support these calls. Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/modplatform/flame')
-rw-r--r--launcher/modplatform/flame/FlameAPI.cpp23
-rw-r--r--launcher/modplatform/flame/FlameAPI.h4
2 files changed, 25 insertions, 2 deletions
diff --git a/launcher/modplatform/flame/FlameAPI.cpp b/launcher/modplatform/flame/FlameAPI.cpp
index 983e09fd..065b4cc2 100644
--- a/launcher/modplatform/flame/FlameAPI.cpp
+++ b/launcher/modplatform/flame/FlameAPI.cpp
@@ -123,3 +123,26 @@ auto FlameAPI::getLatestVersion(VersionSearchArgs&& args) -> ModPlatform::Indexe
return ver;
}
+
+auto FlameAPI::getProjects(QStringList addonIds, QByteArray* response) const -> NetJob::Ptr
+{
+ auto* netJob = new NetJob(QString("Flame::GetProjects"), APPLICATION->network());
+
+ QJsonObject body_obj;
+ QJsonArray addons_arr;
+ for (auto& addonId : addonIds) {
+ addons_arr.append(addonId);
+ }
+
+ body_obj["modIds"] = addons_arr;
+
+ QJsonDocument body(body_obj);
+ auto body_raw = body.toJson();
+
+ netJob->addNetAction(Net::Upload::makeByteArray(QString("https://api.curseforge.com/v1/mods"), response, body_raw));
+
+ QObject::connect(netJob, &NetJob::finished, [response] { delete response; });
+ QObject::connect(netJob, &NetJob::failed, [body_raw] { qDebug() << body_raw; });
+
+ return netJob;
+}
diff --git a/launcher/modplatform/flame/FlameAPI.h b/launcher/modplatform/flame/FlameAPI.h
index e45b5cb1..1646ec79 100644
--- a/launcher/modplatform/flame/FlameAPI.h
+++ b/launcher/modplatform/flame/FlameAPI.h
@@ -3,8 +3,6 @@
#include "modplatform/ModIndex.h"
#include "modplatform/helpers/NetworkModAPI.h"
-#include "net/NetJob.h"
-
class FlameAPI : public NetworkModAPI {
public:
auto matchFingerprints(const std::list<uint>& fingerprints, QByteArray* response) -> NetJob::Ptr;
@@ -12,6 +10,8 @@ class FlameAPI : public NetworkModAPI {
auto getLatestVersion(VersionSearchArgs&& args) -> ModPlatform::IndexedVersion;
+ auto getProjects(QStringList addonIds, QByteArray* response) const -> NetJob::Ptr override;
+
private:
inline auto getSortFieldInt(QString sortString) const -> int
{