#!/bin/bash

set -u
set -e
set -x

info() {
  echo "$@ " >&2
}

create_instance() {
  local service_id=$1
  local plan_id=$2
  local instance_id=$3
  info creating service instance ${instance_id} for plan ${plan_id}
  curl ${BROKER_URI}/v2/service_instances/${instance_id} \
       -XPUT \
       -d "{\"service_id\": \"${service_id}\", \"plan_id\": \"${plan_id}\"}" \
       >&2 || {
    echo "Couldn't create service instance"
    exit 1
  }
}

create_binding() {
  local service_id=$1
  local plan_id=$2
  local instance_id=$3
  local binding_id=$4
  info creating binding ${binding_id} for instance ${instance_id}
  curl -sf ${BROKER_URI}/v2/service_instances/${instance_id}/service_bindings/${binding_id} \
    -XPUT \
    -d "{\"service_id\": \"${service_id}\", \"plan_id\": \"${plan_id}\"}" || {
    echo "Couldn't create instance binding"
    exit 1
  }
}

main() {
  if [ -z "$BROKER_URI" ]; then
    echo 'Variable $BROKER_URI is not set'
    exit 1
  fi

  local service_id=$1
  local plan_id=$2
  local instance_id=$3
  local binding_id=$4

  create_instance $service_id $plan_id $instance_id
  credentials=$(create_binding $service_id $plan_id $instance_id $binding_id)

  echo $credentials
}

main $@
