diff options
| author | flow <flowlnlnln@gmail.com> | 2022-06-19 14:29:21 -0300 |
|---|---|---|
| committer | flow <flowlnlnln@gmail.com> | 2022-07-17 11:33:43 -0300 |
| commit | 52c45c2d32e6bb10b2ca5db9b73cb91fac57c943 (patch) | |
| tree | e649079aaef56c06f7329a51de48e371092d9c6e /launcher/modplatform/flame | |
| parent | fd6755c93f3f3f7551f9b7c11d1bbbb48c22e210 (diff) | |
| download | PrismLauncher-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.cpp | 23 | ||||
| -rw-r--r-- | launcher/modplatform/flame/FlameAPI.h | 4 |
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 { |
