2021-06-29 09:06:20 +01:00
|
|
|
const dayjs = require("dayjs");
|
2021-09-19 16:24:51 +01:00
|
|
|
const utc = require("dayjs/plugin/utc");
|
|
|
|
let timezone = require("dayjs/plugin/timezone");
|
|
|
|
dayjs.extend(utc);
|
|
|
|
dayjs.extend(timezone);
|
2021-07-27 18:47:13 +01:00
|
|
|
const { BeanModel } = require("redbean-node/dist/bean-model");
|
2021-06-29 09:06:20 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* status:
|
|
|
|
* 0 = DOWN
|
|
|
|
* 1 = UP
|
2021-07-27 18:53:59 +01:00
|
|
|
* 2 = PENDING
|
2021-06-29 09:06:20 +01:00
|
|
|
*/
|
|
|
|
class Heartbeat extends BeanModel {
|
|
|
|
|
2022-04-16 21:11:45 +01:00
|
|
|
/**
|
2022-04-22 19:10:13 +01:00
|
|
|
* Return an object that ready to parse to JSON for public
|
2022-04-16 21:11:45 +01:00
|
|
|
* Only show necessary data to public
|
|
|
|
* @returns {Object}
|
|
|
|
*/
|
2021-09-19 16:24:51 +01:00
|
|
|
toPublicJSON() {
|
|
|
|
return {
|
|
|
|
status: this.status,
|
|
|
|
time: this.time,
|
|
|
|
msg: "", // Hide for public
|
|
|
|
ping: this.ping,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-04-16 21:11:45 +01:00
|
|
|
/**
|
2022-04-22 19:10:13 +01:00
|
|
|
* Return an object that ready to parse to JSON
|
2022-04-16 21:11:45 +01:00
|
|
|
* @returns {Object}
|
|
|
|
*/
|
2021-06-29 09:06:20 +01:00
|
|
|
toJSON() {
|
|
|
|
return {
|
|
|
|
monitorID: this.monitor_id,
|
|
|
|
status: this.status,
|
|
|
|
time: this.time,
|
|
|
|
msg: this.msg,
|
|
|
|
ping: this.ping,
|
|
|
|
important: this.important,
|
2021-06-30 19:02:54 +01:00
|
|
|
duration: this.duration,
|
2021-06-29 09:06:20 +01:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = Heartbeat;
|