#
# Copyright Super iPaaS Integration LLC, an IBM Company 2024
#
#!/bin/bash

name=$1
npm_user=$2
npm_identity_token=$3
ARTIFACTORY_URL="https://ico.jfrog.io/artifactory/api/npm/npm-snapshot-local/@webMethods/$name"

# Fetch the package information from JFrog Artifactory
response=$(curl --write-out "HTTPSTATUS:%{http_code}" --location --request GET \
  "$ARTIFACTORY_URL" \
  --user "$npm_user:$npm_identity_token")

# HTTP status and response body
echo "======== JFrog API invoked successfully ========"
http_body=$(echo "$response" | sed -e 's/HTTPSTATUS\:.*//g')
http_status=$(echo "$response" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
echo "Status Code = $http_status"
echo "======= Response Body ========="
echo "$http_body"

if [ $http_status -eq 200 ]; then
    # Package exists
    latest_version=$(echo "$http_body" | jq -r '.["dist-tags"].latest')
    # Extract the build number from the version
    build_number=$(echo "$latest_version" | awk -F'-' '{print $2}' | awk -F. '{print $1}')

    echo "Extracted Build number= $build_number"

    # Increment the build number
    updated_build_number=$((build_number + 1))
    echo "Updated Build Number: $updated_build_number"
    
    # Output the updated build number based on package name
    if [ "$name" = "studio-logger" ]; then
        echo "logger-version=${updated_build_number}" >> $GITHUB_OUTPUT
    elif [ "$name" = "studio-build" ]; then
        echo "build-version=${updated_build_number}" >> $GITHUB_OUTPUT
    elif [ "$name" = "studio-deploy" ]; then
        echo "deploy-version=${updated_build_number}" >> $GITHUB_OUTPUT
    elif [ "$name" = "studio-test" ]; then
        echo "test-version=${updated_build_number}" >> $GITHUB_OUTPUT
    elif [ "$name" = "studio-vcs" ]; then
        echo "vcs-version=${updated_build_number}" >> $GITHUB_OUTPUT
    fi
else
    # Package does not exist or request failed
    initial_build_number=1

    # Output the initial build number based on package name
    if [ "$name" = "studio-logger" ]; then
        echo "logger-version=${initial_build_number}" >> $GITHUB_OUTPUT
    elif [ "$name" = "studio-build" ]; then
        echo "build-version=${initial_build_number}" >> $GITHUB_OUTPUT
    elif [ "$name" = "studio-deploy" ]; then
        echo "deploy-version=${initial_build_number}" >> $GITHUB_OUTPUT
    elif [ "$name" = "studio-test" ]; then
        echo "test-version=${initial_build_number}" >> $GITHUB_OUTPUT
    elif [ "$name" = "studio-vcs" ]; then
        echo "vcs-version=${initial_build_number}" >> $GITHUB_OUTPUT
    fi
fi