#!/bin/bash
# info: list user favourites
# options: USER [FORMAT]
#
# The function for getting the list of favourite user objects


#----------------------------------------------------------#
#                    Variable&Function                     #
#----------------------------------------------------------#

# Argument definition
user=$1
format=${2-shell}

# Includes
source $VESTA/func/main.sh

# JSON list function
json_list() {
    echo '{'
    echo '    "Favourites": {
        "USER": "'$USER'",
        "WEB": "'$WEB'",
        "DNS": "'$DN'",
        "DNS_REC": "'$DNS_REC'",
        "MAIL": "'$MAIL'",
        "MAIL_ACC": "'$MAIL_ACC'",
        "DB": "'$DB'",
        "CRON": "'$CRON'",
        "BACKUP": "'$BACKUP'",
        "IP": "'$IP'",
        "PACKAGE": "'$PACKAGE'",
        "FIREWALL": "'$FIREWALL'"
        }'
    echo '}'
}

# SHELL list function
shell_list() {
    echo "USER:           $USER"
    echo "WEB:            $WEB"
    echo "DNS:            $DNS"
    echo "DNS RECORD:     $DNS_REC"
    echo "MAIL:           $MAIL"
    echo "MAIL USER:      $MAIL_ACC"
    echo "DATABASE:       $DB"
    echo "CRON:           $CRON"
    echo "BACKUP:         $BACKUP"
    echo "IP:             $IP"
    echo "PACKAGE:        $PACKAGE"
    echo "FIREWALL:       $FIREWALL"
}

# PLAIN list function
plain_list() {
    echo -ne "$USER\t$WEB\t$DNS\t$DNS_REC\t$MAIL\t$MAIL_ACC\t$DB\t$CRON\t"
    echo -e "$BACKUP\t$IP\t$PACKAGE\t$FIREWALL"
}

# CSV list function
csv_list() {
    echo -n "USER,WEB,DNS,DNS_REC,MAIL,MAIL_ACC,DB,CRON,BACKUP,IP,"
    echo "PACKAGE,FIREWALL"
    echo -n "\"$USER\",\"$WEB\",\"$DNS\",\"$DNS_REC\",\"$MAIL\","
    echo -n "\"$MAIL_ACC\",\"$DB\",\"$CRON\",\"$BACKUP\",\"$IP\","
    echo "\"$PACKAGE\",\"$FIREWALL\""
}


#----------------------------------------------------------#
#                    Verifications                         #
#----------------------------------------------------------#

# Checking args
check_args '1' "$#" 'USER [FORMAT]'
is_format_valid 'user'
is_object_valid 'user' 'USER' "$user"


#----------------------------------------------------------#
#                       Action                             #
#----------------------------------------------------------#

# Flushing vars
USER=''
WEB=''
DNS=''
DNS_REC=''
MAIL=''
MAIL_ACC=''
DB=''
CRON=''
BACKUP=''
IP=''
PACKAGE=''
FIREWALL=''

# Parsing user favourites
if [ -e "$VESTA/data/users/$user/favourites.conf" ]; then
    source $VESTA/data/users/$user/favourites.conf
fi

# Listing data
case $format in
    json)   json_list ;;
    plain)  plain_list ;;
    csv)    csv_list ;;
    shell)  shell_list ;;
esac


#----------------------------------------------------------#
#                       Vesta                              #
#----------------------------------------------------------#

exit