#!/bin/sh
CURL="/usr/bin/curl"

usage () {
		cat << EOF
Usage: $0 [OPTIONS] <url>

sends a patch request to NGCP REST API

OPTIONS:
  -h this help
  -v verbose mode
  -f read the input info from a file instead of read stdin
  -m use Header 'Refer: return=minimal'
EOF
		exit 1
}

test -z "$APIUSER" && APIUSER="administrator:administrator"
INPUT="-T -"
CTYPE="application/json-patch+json"
PREFER="representation"

while getopts "mf:hv" OPTION
do
	case $OPTION in
		h)
			usage
			;;
		f)
			INPUT=""
			FILE_INPUT="--data-binary @$OPTARG"
			if [ ! -f "$OPTARG" ]; then
				echo "No '$OPTARG' file found"
				usage
			fi
			;;
		m)
			PREFER="minimal"
			;;
		v)
			VERBOSE="--verbose"
			;;
		?)
			usage
			;;
	esac
done
shift $(($OPTIND - 1))

URL="$1"
test -z "$URL" && usage;

${CURL} -i ${VERBOSE} -X PATCH \
    -H 'Connection: close' -H "Prefer: return=$PREFER" \
    -H "Content-Type: $CTYPE" \
    --user "$APIUSER" --insecure ${FILE_INPUT} "$URL" ${INPUT}
