From 242fb156a281ef188c9fd75969c5d70ba6f8c140 Mon Sep 17 00:00:00 2001
From: flow <flowlnlnln@gmail.com>
Date: Thu, 21 Jul 2022 16:40:28 -0300
Subject: feat: add 'getFiles' by fileIds route in Flame API

Signed-off-by: flow <flowlnlnln@gmail.com>
---
 launcher/modplatform/flame/FlameAPI.cpp | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

(limited to 'launcher/modplatform/flame/FlameAPI.cpp')

diff --git a/launcher/modplatform/flame/FlameAPI.cpp b/launcher/modplatform/flame/FlameAPI.cpp
index 9c74918b..f8f50dc6 100644
--- a/launcher/modplatform/flame/FlameAPI.cpp
+++ b/launcher/modplatform/flame/FlameAPI.cpp
@@ -183,3 +183,26 @@ auto FlameAPI::getProjects(QStringList addonIds, QByteArray* response) const ->
 
     return netJob;
 }
+
+auto FlameAPI::getFiles(QStringList fileIds, QByteArray* response) const -> NetJob*
+{
+    auto* netJob = new NetJob(QString("Flame::GetFiles"), APPLICATION->network());
+
+    QJsonObject body_obj;
+    QJsonArray files_arr;
+    for (auto& fileId : fileIds) {
+        files_arr.append(fileId);
+    }
+
+    body_obj["fileIds"] = files_arr;
+
+    QJsonDocument body(body_obj);
+    auto body_raw = body.toJson();
+
+    netJob->addNetAction(Net::Upload::makeByteArray(QString("https://api.curseforge.com/v1/mods/files"), response, body_raw));
+
+    QObject::connect(netJob, &NetJob::finished, [response, netJob] { delete response; netJob->deleteLater(); });
+    QObject::connect(netJob, &NetJob::failed, [body_raw] { qDebug() << body_raw; });
+
+    return netJob;
+}
-- 
cgit