import axios from "axios";
import semver from "semver";

export default async function({ siteVersion, projectId }) {
  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 }) => {
      if (siteVersion === 'next') {
        return data[0].name
      } else {
        const versionRange = `~${siteVersion}`
        const suitableVersions = await data
          .filter(({ name }) => semver.satisfies(name, versionRange))
          .map(({ name }) => name)
          .sort()

        return semver.maxSatisfying(suitableVersions, versionRange)
      }
    })
}