#!/bin/bash
source $HOME/.gamerc
[ "$5" == "" ] && exec echo "Usage: $0 <DBNAME> <XLUSERID> <ORDERID> <MINUS_POINT> <MINUS_BONUS>"

DBNAME=$1
XLUSERID=$2
ORDERID=$3
MINUS_POINT=$4
MINUS_BONUS=$5

get_os() {
    local os=$(cat /etc/os-release | egrep "^ID=" | sed 's/ID=//;s/"//g')
    echo ${os}
}

get_internal_ip() {
    local os=$(get_os)
    if [ "${os}" == "centos" ]; then
        local internal_ip=$(/sbin/ifconfig eth0 | grep 'inet' | grep -v 'inet6' | awk -F' ' '{print $2}' | awk '{print $1}')
    elif [ "${os}" == "debian" ]; then
        local internal_ip=$(/sbin/ifconfig ${WZ_EXT_IF} | grep 'inet' | grep -v 'inet6' | awk -F' ' '{print $2}' | awk '{print $1}')
    fi
    echo ${internal_ip}
}

get_environment() {
    local internal_ip=$(get_internal_ip)
    local checked=$(sed -n '/PLEASE DO NOT CHANGE THE FILE/,/DO NOT CHANGE THE SERVER NAMES ABOVE/p' /etc/hosts | egrep "${internal_ip} ")
    if [ -z "${checked}" ]; then
        local environment="TEST"
    else
        local environment="LIVE"
    fi
    echo ${environment}
}

get_machine() {
    local internal_ip=$(get_internal_ip)
    local checked=$(grep "${internal_ip} " /etc/hosts | awk -F" " '{print $2}')
    if [ -z "${checked}" ]; then
        local machine="Unknown"
    else
        local machine=${checked}
    fi
    echo ${machine}
}

REFUND_RESULT=$(psql -U postgres ${DBNAME} -c "SELECT refund('${XLUSERID}', '${ORDERID}', ${MINUS_POINT}, ${MINUS_BONUS});")
CHECKED_REFUND_RESULT=$(echo ${REFUND_RESULT} | grep "1,Success,")

DATETIME=$(date +"%Y-%m-%d %T %Z")
internal_ip=$(get_internal_ip)
environment=$(get_environment)
machine=$(get_machine)
#GOOGLE_CHAT_WEBHOOK_URL="https://chat.googleapis.com/v1/spaces/AAAA7hXAOCM/messages?key=AIzaSyDdI0hCZtE6vySjMm-WEfRq3CPzqKqqsHI&token=YupvEeDhNq2aF9ldCAf8TeJw8kmafVAXpj3xJWIzRGw%3D"

if [ ! -z "${CHECKED_REFUND_RESULT}" ]; then 
    RETURN_RESULT=$(psql -U postgres ${DBNAME} -c "COPY (SELECT * FROM refund_history WHERE xluserid = '${XLUSERID}' AND orderid = '${ORDERID}') TO STDOUT WITH HEADER CSV;")
else
    RETURN_RESULT=$(echo "${REFUND_RESULT}" | grep -oP '\([^\)]+\)' | head -n 1 | sed 's/(//g;s/)//g;s/"//g;s/://')
fi

MESSAGE="${DATETIME}\n[Refund] ${DBNAME} on ( ${GAME_TYPE}-${COUNTRY_CODE_DISPLAY} )\n[${environment}] ${machine} ( ${internal_ip} )\n${RETURN_RESULT}"
curl -X POST -H 'Content-Type: application/json' $GOOGLE_CHAT_WEBHOOK_URL -d "{\"text\": \"${MESSAGE}\"}"
