From b368f0982db5cc030ffbe71a0a5f10ff3c0ea82c Mon Sep 17 00:00:00 2001
From: Lucas Bandermann <lucasbandermann@gmail.com>
Date: Wed, 7 Feb 2024 14:26:52 +0100
Subject: [PATCH] Added api route for forge updates

---
 .../Controllers/ForgeUpdateJsonController.php | 24 +++++++++++++++++++
 routes/api.php                                |  1 +
 2 files changed, 25 insertions(+)
 create mode 100644 app/Api/Controllers/ForgeUpdateJsonController.php

diff --git a/app/Api/Controllers/ForgeUpdateJsonController.php b/app/Api/Controllers/ForgeUpdateJsonController.php
new file mode 100644
index 0000000..3e76416
--- /dev/null
+++ b/app/Api/Controllers/ForgeUpdateJsonController.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Api\Controllers;
+
+use App\Api\Response\Response;
+
+class ForgeUpdateJsonController
+{
+
+    public function updateJson(string $mod): array
+    {
+        $modrinthLink = "https://api.modrinth.com/updates/$mod/forge_updates.json";
+        $data = json_decode(file_get_contents($modrinthLink), true);
+
+        $promos = data_get($data, 'promos');
+        foreach ($promos as $key => $value) {
+            $promos[$key] = explode('+', $value)[0];
+        }
+
+        $data['promos'] = $promos;
+        return $data;
+    }
+
+}
diff --git a/routes/api.php b/routes/api.php
index d330a35..2b98bf7 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -17,3 +17,4 @@
 Route::get('/player/{uuid}', 'MinecraftPlayerController@getData');
 Route::get('/legacy/data', 'MinecraftPlayerController@getLegacyData');
 Route::post('/mod-update-post', 'ModUpdatePostController@store');
+Route::get('/forge_updates/{mod}', 'ForgeUpdateJsonController@updateJson');