const NotificationProvider = require("./notification-provider");
const axios = require("axios");
class Pushover extends NotificationProvider {
    name = "pushover";
    async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
        let okMsg = "Sent Successfully.";
        let pushoverlink = "https://api.pushover.net/1/messages.json"
        try {
            if (heartbeatJSON == null) {
                let data = {
                    "message": "Uptime Kuma Pushover testing successful.",
                    "user": notification.pushoveruserkey,
                    "token": notification.pushoverapptoken,
                    "sound": notification.pushoversounds,
                    "priority": notification.pushoverpriority,
                    "title": notification.pushovertitle,
                    "retry": "30",
                    "expire": "3600",
                    "html": 1,
                }
                await axios.post(pushoverlink, data)
                return okMsg;
            }
            let data = {
                "message": "Uptime Kuma Alert\n\nMessage:" + msg + "\nTime (UTC):" + heartbeatJSON["time"],
                "user": notification.pushoveruserkey,
                "token": notification.pushoverapptoken,
                "sound": notification.pushoversounds,
                "priority": notification.pushoverpriority,
                "title": notification.pushovertitle,
                "retry": "30",
                "expire": "3600",
                "html": 1,
            }
            await axios.post(pushoverlink, data)
            return okMsg;
        } catch (error) {
            this.throwGeneralAxiosError(error)
        }
    }
}
module.exports = Pushover;