From 054b03816074bdecdfe09bc6572f098e67c839df Mon Sep 17 00:00:00 2001
From: Florian Kaufmann <florian.kaufmann@codecentric.de>
Date: Thu, 11 Nov 2021 16:06:23 +0100
Subject: [PATCH] =?UTF-8?q?Wiedereinf=C3=BChrung=20der=20latest=20version?=
 =?UTF-8?q?=20f=C3=BCr=20die=20Submission=20Api?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 docs/apis/submission-api.mdx  |  2 +-
 src/utils/getLatestVersion.js | 32 ++++++++++++++++++--------------
 2 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/docs/apis/submission-api.mdx b/docs/apis/submission-api.mdx
index 389bfb1f9..d148f24af 100644
--- a/docs/apis/submission-api.mdx
+++ b/docs/apis/submission-api.mdx
@@ -5,4 +5,4 @@ hide_table_of_contents: true
 
 import ApiSpec from '@site/src/components/ApiSpec'
 
-<ApiSpec gitlabProjectId={"1"} path={"submission-api"} artifact={"submission-api.yaml"} includePrerelease = {true} />
+<ApiSpec gitlabProjectId={"1"} path={"submission-api"} artifact={"submission-api.yaml"} includePrerelease = {true} version = {"latest"} />
diff --git a/src/utils/getLatestVersion.js b/src/utils/getLatestVersion.js
index 32b221dc1..8e57cdafd 100644
--- a/src/utils/getLatestVersion.js
+++ b/src/utils/getLatestVersion.js
@@ -2,19 +2,23 @@ import axios from "axios";
 import semver from "semver";
 
 export default async function ({siteVersion, projectId, includePrerelease = false}) {
-  return axios.get(`https://git.fitko.de/api/v4/projects/${projectId}/repository/tags`)
-    .catch((error) => {
-      throw `Fetching of latest tags failed with ${error.response.status}`
-    })
-    .then(async ({data}) => {
-      const versionRange = `~${siteVersion}`
-      const suitableVersions = await data
-        .filter(({name}) => semver.satisfies(name, versionRange, {includePrerelease}))
-        .map(({name}) => name)
-        .sort()
+  if (siteVersion === 'latest') {
+    return 'latest'
+  } else {
+    return axios.get(`https://git.fitko.de/api/v4/projects/${projectId}/repository/tags`)
+      .catch((error) => {
+        throw `Fetching of latest tags failed with ${error.response.status}`
+      })
+      .then(async ({data}) => {
+        const versionRange = `~${siteVersion}`
+        const suitableVersions = await data
+          .filter(({name}) => semver.satisfies(name, versionRange, {includePrerelease}))
+          .map(({name}) => name)
+          .sort()
 
-      const result_version = semver.maxSatisfying(suitableVersions, versionRange, {includePrerelease})
-      console.log('Get version for project: %s, requested version: %s, includePrerelease: %s, available versions: %s, selected version: %s', projectId, siteVersion, includePrerelease, suitableVersions, result_version)
-      return result_version
-    })
+        const result_version = semver.maxSatisfying(suitableVersions, versionRange, {includePrerelease})
+        console.log('Get version for project: %s, requested version: %s, includePrerelease: %s, available versions: %s, selected version: %s', projectId, siteVersion, includePrerelease, suitableVersions, result_version)
+        return result_version
+      })
+  }
 }
-- 
GitLab