#!/bin/bash
clear
# Definiendo funciones

#verifica el estatus al ejecutar cada comando
# @param $1: codigo de estatus 
# @param $2: comando ejecutado
ckeckStatus () {
	if ([ $1 -eq 0 ]) then
        	echo "Estatus :: $1"
	        echo "Comando :: '$2'"
        	echo "Mensaje :: Ejecución terminada correctamente."
			echo ".................."    
	else
	        echo "Estatus :: $1" 
	        echo "Comando :: '$2'"
	        echo "Mensaje :: Ejecución fallida."
	        echo "Terminando ejecución con 0"
			echo ".................."
	        exit 0
	fi
}

#escribe en el archivo log
# @param $1: contenido 
# @param $2: archivo
writeLog() {
	echo "Escribiendo en el log"
	echo $1 >> $2
}

#definiendo variables
directory="/home/kodezilla/public_html/_shm/services/storage/app/public/Log/" #directorio para guardar el archivo log
datetime=$(date '+%Y-%m-%d %H:%M:%S') #función para obtener fecha/hora
fileName="job_notifications_news.log" #nombre del archivo log de ejecuciones
log_file="${directory}${fileName}" #nombre completo del archivo log
serviceURL="https://kodezilla.com/_shm/services/public/api/jobs/notifications/news/send" #url del servicio a ejecutar

#definiendo comandos
#comando para crear el directorio log
cmd_create_directory="mkdir $directory"
#comando para crear el archivo log
cmd_createFile="touch $log_file"
#comando para ejecutar servicio GET
cmd_curlGETService="curl -H 'Accept: application/json' -H 'Content-type: application/json' -v $serviceURL"

##### inicia ejecución principal

#Verificamos directorios
if ([ ! -d "$directory" ]) then
    echo "El directorio $directory no existe."
    echo "Creando directorio $directory"
	# Ejecutando comando
	echo $
	eval $cmd_create_directory
	# Obtenemos el estatus
	status=$?
	echo ".................."
	# Evaluamos el estatus
	ckeckStatus $status $cmd_create_directory
else 
	echo "El directorio $directory ya existe."
	echo ".................."
fi

#creamos archivo de log
if ([ ! -f "$log_file" ]) then
    echo "El archivo $log_file no existe."
    echo "Creando archivo $log_file"
	# Ejecutando comando
	echo $cmd_createFile
	eval $cmd_createFile
	# Obtenemos el estatus
	status=$?
	echo ".................."
	# Evaluamos el estatus
	ckeckStatus $status $cmd_createFile
else 
	echo "El archivo $log_file ya existe."
	echo ".................."
fi

#escribimos en el log (Inicio de ejecución)
writeLog "$(date '+%Y-%m-%d %H:%M:%S')::service->$serviceURL::start::response->''::status->''" "$log_file"

## Ejecutando servicio
echo "Ejecutando servicio: '$cmd_curlGETService'"
cmd_curlGETResponse=$($cmd_curlGETService)
## Obtenemos el estatus
status=$?
echo ".................."
## Evaluamos el estatus
ckeckStatus $status $cmd_curlGETService

#escribimos en el log (finaliz ejecución)
writeLog "$(date '+%Y-%m-%d %H:%M:%S')::service->$serviceURL::end::response->$cmd_curlGETResponse::status->$status" "$log_file"

##### termina ejecución principal