#!/bin/bash
# ============================================================
# easyNag Notification Script for Nagios
# ============================================================
EASYNAG_INSTANCE="MyNagiosCore"
EASYNAG_API_URL="https://api.easynag.com/v1/push/alert"
EASYNAG_USER_KEY="${1:-}"

if [ -z "${EASYNAG_USER_KEY}" ]; then
    echo "easyNag: no user_key" >&2
    exit 0
fi

WHAT="${2:-HOST}"
NOTIFICATIONTYPE="${3:-}"
HOSTNAME="${4:-}"
STATE="${5:-}"
OUTPUT="${6:-}"
DATE="${7:-$(date '+%Y-%m-%d %H:%M')}"
AUTHOR="${8:-}"
COMMENT="${9:-}"
SERVICE="${10:-}"
INSTANCE="${11:-${EASYNAG_INSTANCE}}"

OUTPUT_ESCAPED=$(echo "${OUTPUT}" | sed 's/\\/\\\\/g; s/"/\\"/g')

curl -s -o /dev/null \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
        \"user_key\":  \"${EASYNAG_USER_KEY}\",
        \"what\":      \"${WHAT}\",
        \"type\":      \"${NOTIFICATIONTYPE}\",
        \"state\":     \"${STATE}\",
        \"hostname\":  \"${HOSTNAME}\",
        \"service\":   \"${SERVICE}\",
        \"output\":    \"${OUTPUT_ESCAPED}\",
        \"author\":    \"${AUTHOR}\",
        \"comment\":   \"${COMMENT}\",
        \"date\":      \"${DATE}\",
        \"instance\":  \"${INSTANCE}\"
    }" \
    "${EASYNAG_API_URL}"
