#!/usr/bin/env bash

BRANCH=${1}

if [[ -z "${BRANCH}" ]]; then
    echo "skipping no branch specified"
    exit 0
fi

if [[ -z "${DOWNSTREAM_SLUG}" ]]; then
    echo "skipping, no downstream"
    exit 0
fi

if [[ -z ${DOWNSTREAM_TOK} ]]; then
  exit 0
fi

if [[ -z ${DOWNSTREAM_WORKFLOW} ]]; then
    echo "skipping, no downstream workflow"
    exit 0
fi

CURL_RESPONSE=$(curl \
  --silent \
  -w '%{http_code}\n' \
  -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer ${DOWNSTREAM_TOK}" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  "https://api.github.com/repos/hashicorp/boundary-${DOWNSTREAM_SLUG}/actions/workflows/${DOWNSTREAM_WORKFLOW}/dispatches" \
  -d @- << EOF
{
  "ref": "${BRANCH}",
  "inputs": {
    "from-branch": "${BRANCH}",
    "to-branch": "${BRANCH}"
  }
}
EOF
)
echo $CURL_RESPONSE

# Get the first digit of the status code (get the last word of the last line,
# and then get the first character of that word)
CURL_STATUS_CODE=$(echo "$CURL_RESPONSE" | tail -n1 | awk '{print $NF}' | cut -c1)

if [[ $CURL_STATUS_CODE -ne 2 ]]; then
  echo "ERROR: failed to trigger downstream workflow"
  exit 1
fi
