create-host.sh

#!/bin/sh
if [ "$#" -lt 2 ]
then
	echo "Usage: $0 JWT_FILE EMAIL [NAME] [PHONE_NUMBER] [TITLE]"
	exit 1
fi
jwt_filepath=$1
EMAIL=$2
NAME="${3:-Unnamed}"
PHONE_NUMBER="${4:-555-1212}"
TITLE="${5:-Intern}"
SERVER_URL="${SWGY_SERVER:-http://127.0.0.1}"

# BEGIN: JWT Loading

if ! test -f "$jwt_filepath";
then
  echo "Cannot read $jwt_filepath"
  exit 1
fi
#
# Read the JWT token from the JSON file
access_token=$(jq -r '.access_token' "$jwt_filepath")
token_type=$(jq -r '.token_type' "$jwt_filepath")

# Check if token_type is "bearer"
if [ "$token_type" != "bearer" ]; then
    echo "Error: invalid token_type"
    exit 1
fi
#
# Set the Authorization header to the JWT token
authorization="Authorization: Bearer $access_token"

# END: JWT Loading
curl -k -vvv -X "PUT" -H "$authorization" -H "Content-Type: application/json" -d \
	"{\"email\":\"${EMAIL}\", \"name\":\"${NAME}\", \"phone-number\":\"${PHONE_NUMBER}\", \"title\":\"${TITLE}\"}" \
${SERVER_URL}/api/hosts