#!/usr/bin/env bash
default_features_url=http://qa-ows-features.theorchard.io
OWS_FEATURES_URL=${OWS_FEATURES_URL-$default_features_url}

function update_flag {
	flag=$1
	variant=$2
	if [[ -z $flag ]]; then
		echo "Please include flag."
		exit 1
	fi
	echo "Updating $flag to $variant for user $OWS_FEATURES_USER"
	url="$OWS_FEATURES_URL/features/$flag/user/$OWS_FEATURES_USER"
	data="{\"variant_name\": \"$variant\" }"
	curl -s -H "Content-Type: application/json" -X PUT "$url" -d "$data"
	echo
}

# Look for optional -u user param.
if [[ $1 == "-u" ]]; then
	OWS_FEATURES_USER=$2
	shift 2
fi

# Make sure we have a user, either from command line or environment.
if [[ -z $OWS_FEATURES_USER ]]; then
	echo "Please include -u <user> or set OWS_FEATURES_USER environment variable."
	exit 1
fi

# Choose command to run.
case "$1" in
	list)
		echo "Listing features for user $OWS_FEATURES_USER"
		curl -s "$OWS_FEATURES_URL/features/user/$OWS_FEATURES_USER" | json_pp
		;;
	enable)
		update_flag $2 "enabled" 
		;;
	disable)
		update_flag $2 "control" 
		;;
	*)
		echo $"Usage: $0 [-u user] ( list | enable <flag> | disable <flag> )"
		exit 1
esac
