#!/bin/bash
# info: add user notification
# options: USER TOPIC NOTICE [TYPE]
#
# The function adds user notification.


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

# Argument definition
user=$1
topic=$(echo $2 |sed "s/'/%quote%/g")
notice=$(echo $3 |sed "s/'/%quote%/g")
type=$4

# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf


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

check_args '2' "$#" 'USER TOPIC NOTICE [TYPE]'
is_format_valid 'user' 'topic' 'notice'
is_object_valid 'user' 'USER' "$user"


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

# Defining notification id
if [ -e "$USER_DATA/notifications.conf" ]; then
    nid=$(grep "NID=" $USER_DATA/notifications.conf |cut -f 2 -d \')
    nid=$(echo "$nid" |sort -n |tail -n1)
    if [ ! -z "$nid" ]; then
        nid="$((nid +1))"
    else
        nid=1
    fi
else
    nid=1
fi

# Generating timestamp
time_n_date=$(date +'%T %F')
time=$(echo "$time_n_date" |cut -f 1 -d \ )
date=$(echo "$time_n_date" |cut -f 2 -d \ )

# Concatenating string
str="NID='$nid' TOPIC='$topic' NOTICE='$notice' TYPE='$type'"
str="$str ACK='no' TIME='$time' DATE='$date'"

# Adding to config
echo "$str" >> $USER_DATA/notifications.conf

# Changing permissions
chmod 660 $USER_DATA/notifications.conf


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

# Updating notification counter
if [ -z "$(grep NOTIFICATIONS $USER_DATA/user.conf)" ]; then
    sed -i "s/^TIME/NOTIFICATIONS='yes'\nTIME/g" $USER_DATA/user.conf
else
    update_user_value "$user" '$NOTIFICATIONS' "yes"
fi

exit