#!/usr/bin/env bash

##############################################################################
#
# DESCRIPTION
#   This script:
#       - Downloads the database credentials JSON from AWS Secrets Manager
#       - Sets the environment variables
#
#   There are optional overrides that can be set via environment variables.
#
#   These are the available override variables and their defaults:
#       ENVIRONMENT                   "dev"
#       MAIN_DATABASE_SECRET_NAME     "delphi/${ENVIRONMENT}/api/db_params"
#       DECIBEL_DATABASE_SECRET_NAME  "delphi/${ENVIRONMENT}/api/decibel_db_params"
#
##############################################################################

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd)"
PARENT_DIR="$(dirname ${SCRIPT_DIR})"

# get variable from environment, or default to 'dev'
ENVIRONMENT="${ENVIRONMENT:-dev}"

MAIN_DATABASE_SECRET_NAME_DEFAULT="delphi/${ENVIRONMENT}/api/db_params"
MAIN_DATABASE_SECRET_NAME=${MAIN_DATABASE_SECRET_NAME:-$MAIN_DATABASE_SECRET_NAME_DEFAULT}

MAIN_DATABASE_SECRETS_RESPONSE=$(aws secretsmanager get-secret-value --secret-id "${MAIN_DATABASE_SECRET_NAME}" --output json | jq -r .SecretString)

export POSTGRES_ADDRESS="${POSTGRES_ADDRESS:-`echo "${MAIN_DATABASE_SECRETS_RESPONSE}" | jq -r .active_endpoint`}"
export POSTGRES_DB="${POSTGRES_DB:-`echo "${MAIN_DATABASE_SECRETS_RESPONSE}" | jq -r .database`}"
export POSTGRES_USER="${POSTGRES_USER:-`echo "${MAIN_DATABASE_SECRETS_RESPONSE}" | jq -r .username`}"
export POSTGRES_PORT="${POSTGRES_PORT:-`echo "${MAIN_DATABASE_SECRETS_RESPONSE}" | jq -r .port`}"
export POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-`echo "${MAIN_DATABASE_SECRETS_RESPONSE}" | jq -r .password`}"
export POSTGRES_CLUSTER_ID="${POSTGRES_CLUSTER_ID:-`echo "${MAIN_DATABASE_SECRETS_RESPONSE}" | jq -r .dbClusterIdentifier`}"
