mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-09 23:24:07 -08:00
Made sure that more of the async usages are awaited (#4574)
This commit is contained in:
parent
a9a1cf1353
commit
0e3b3a9ab8
|
@ -130,7 +130,7 @@ function userAuthorizer(username, password, callback) {
|
|||
* @param {express.Request} req Express request object
|
||||
* @param {express.Response} res Express response object
|
||||
* @param {express.NextFunction} next Next handler in chain
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
exports.basicAuth = async function (req, res, next) {
|
||||
const middleware = basicAuth({
|
||||
|
@ -153,7 +153,7 @@ exports.basicAuth = async function (req, res, next) {
|
|||
* @param {express.Request} req Express request object
|
||||
* @param {express.Response} res Express response object
|
||||
* @param {express.NextFunction} next Next handler in chain
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
exports.apiAuth = async function (req, res, next) {
|
||||
if (!await Settings.get("disableAuth")) {
|
||||
|
|
|
@ -378,7 +378,7 @@ class Database {
|
|||
|
||||
/**
|
||||
* Patch the database
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
static async patch() {
|
||||
// Still need to keep this for old versions of Uptime Kuma
|
||||
|
|
|
@ -65,7 +65,7 @@ class DockerHost {
|
|||
/**
|
||||
* Fetches the amount of containers on the Docker host
|
||||
* @param {object} dockerHost Docker host to check for
|
||||
* @returns {number} Total amount of containers on the host
|
||||
* @returns {Promise<number>} Total amount of containers on the host
|
||||
*/
|
||||
static async testDockerHost(dockerHost) {
|
||||
const options = {
|
||||
|
|
|
@ -9,7 +9,7 @@ class Group extends BeanModel {
|
|||
* @param {boolean} showTags Should the JSON include monitor tags
|
||||
* @param {boolean} certExpiry Should JSON include info about
|
||||
* certificate expiry?
|
||||
* @returns {object} Object ready to parse
|
||||
* @returns {Promise<object>} Object ready to parse
|
||||
*/
|
||||
async toPublicJSON(showTags = false, certExpiry = false) {
|
||||
let monitorBeanList = await this.getMonitorList();
|
||||
|
@ -29,7 +29,7 @@ class Group extends BeanModel {
|
|||
|
||||
/**
|
||||
* Get all monitors
|
||||
* @returns {Bean[]} List of monitors
|
||||
* @returns {Promise<Bean[]>} List of monitors
|
||||
*/
|
||||
async getMonitorList() {
|
||||
return R.convertToBeans("monitor", await R.getAll(`
|
||||
|
|
|
@ -11,7 +11,7 @@ class Maintenance extends BeanModel {
|
|||
/**
|
||||
* Return an object that ready to parse to JSON for public
|
||||
* Only show necessary data to public
|
||||
* @returns {object} Object ready to parse
|
||||
* @returns {Promise<object>} Object ready to parse
|
||||
*/
|
||||
async toPublicJSON() {
|
||||
|
||||
|
@ -98,7 +98,7 @@ class Maintenance extends BeanModel {
|
|||
/**
|
||||
* Return an object that ready to parse to JSON
|
||||
* @param {string} timezone If not specified, the timeRange will be in UTC
|
||||
* @returns {object} Object ready to parse
|
||||
* @returns {Promise<object>} Object ready to parse
|
||||
*/
|
||||
async toJSON(timezone = null) {
|
||||
return this.toPublicJSON(timezone);
|
||||
|
@ -143,7 +143,7 @@ class Maintenance extends BeanModel {
|
|||
* Convert data from socket to bean
|
||||
* @param {Bean} bean Bean to fill in
|
||||
* @param {object} obj Data to fill bean with
|
||||
* @returns {Bean} Filled bean
|
||||
* @returns {Promise<Bean>} Filled bean
|
||||
*/
|
||||
static async jsonToBean(bean, obj) {
|
||||
if (obj.id) {
|
||||
|
@ -189,9 +189,9 @@ class Maintenance extends BeanModel {
|
|||
/**
|
||||
* Throw error if cron is invalid
|
||||
* @param {string|Date} cron Pattern or date
|
||||
* @returns {Promise<void>}
|
||||
* @returns {void}
|
||||
*/
|
||||
static async validateCron(cron) {
|
||||
static validateCron(cron) {
|
||||
let job = new Cron(cron, () => {});
|
||||
job.stop();
|
||||
}
|
||||
|
@ -324,7 +324,7 @@ class Maintenance extends BeanModel {
|
|||
|
||||
/**
|
||||
* Is this maintenance currently active
|
||||
* @returns {boolean} The maintenance is active?
|
||||
* @returns {Promise<boolean>} The maintenance is active?
|
||||
*/
|
||||
async isUnderMaintenance() {
|
||||
return (await this.getStatus()) === "under-maintenance";
|
||||
|
@ -332,7 +332,7 @@ class Maintenance extends BeanModel {
|
|||
|
||||
/**
|
||||
* Get the timezone of the maintenance
|
||||
* @returns {string} timezone
|
||||
* @returns {Promise<string>} timezone
|
||||
*/
|
||||
async getTimezone() {
|
||||
if (!this.timezone || this.timezone === "SAME_AS_SERVER") {
|
||||
|
@ -343,7 +343,7 @@ class Maintenance extends BeanModel {
|
|||
|
||||
/**
|
||||
* Get offset for timezone
|
||||
* @returns {string} offset
|
||||
* @returns {Promise<string>} offset
|
||||
*/
|
||||
async getTimezoneOffset() {
|
||||
return dayjs.tz(dayjs(), await this.getTimezone()).format("Z");
|
||||
|
@ -351,7 +351,7 @@ class Maintenance extends BeanModel {
|
|||
|
||||
/**
|
||||
* Get the current status of the maintenance
|
||||
* @returns {string} Current status
|
||||
* @returns {Promise<string>} Current status
|
||||
*/
|
||||
async getStatus() {
|
||||
if (!this.active) {
|
||||
|
|
|
@ -43,7 +43,7 @@ class Monitor extends BeanModel {
|
|||
* @param {boolean} showTags Include tags in JSON
|
||||
* @param {boolean} certExpiry Include certificate expiry info in
|
||||
* JSON
|
||||
* @returns {object} Object ready to parse
|
||||
* @returns {Promise<object>} Object ready to parse
|
||||
*/
|
||||
async toPublicJSON(showTags = false, certExpiry = false) {
|
||||
let obj = {
|
||||
|
@ -74,7 +74,7 @@ class Monitor extends BeanModel {
|
|||
* Return an object that ready to parse to JSON
|
||||
* @param {boolean} includeSensitiveData Include sensitive data in
|
||||
* JSON
|
||||
* @returns {object} Object ready to parse
|
||||
* @returns {Promise<object>} Object ready to parse
|
||||
*/
|
||||
async toJSON(includeSensitiveData = true) {
|
||||
|
||||
|
@ -947,7 +947,7 @@ class Monitor extends BeanModel {
|
|||
log.debug("monitor", `[${this.name}] apicache clear`);
|
||||
apicache.clear();
|
||||
|
||||
UptimeKumaServer.getInstance().sendMaintenanceListByUserID(this.user_id);
|
||||
await UptimeKumaServer.getInstance().sendMaintenanceListByUserID(this.user_id);
|
||||
|
||||
} else {
|
||||
bean.important = false;
|
||||
|
@ -1377,7 +1377,7 @@ class Monitor extends BeanModel {
|
|||
let notifyDays = await setting("tlsExpiryNotifyDays");
|
||||
if (notifyDays == null || !Array.isArray(notifyDays)) {
|
||||
// Reset Default
|
||||
setSetting("tlsExpiryNotifyDays", [ 7, 14, 21 ], "general");
|
||||
await setSetting("tlsExpiryNotifyDays", [ 7, 14, 21 ], "general");
|
||||
notifyDays = [ 7, 14, 21 ];
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ class StatusPage extends BeanModel {
|
|||
* @param {Response} response Response object
|
||||
* @param {string} indexHTML HTML to render
|
||||
* @param {string} slug Status page slug
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
static async handleStatusPageResponse(response, indexHTML, slug) {
|
||||
// Handle url with trailing slash (http://localhost:3001/status/)
|
||||
|
@ -42,7 +42,7 @@ class StatusPage extends BeanModel {
|
|||
* SSR for status pages
|
||||
* @param {string} indexHTML HTML page to render
|
||||
* @param {StatusPage} statusPage Status page populate HTML with
|
||||
* @returns {void}
|
||||
* @returns {Promise<string>} the rendered html
|
||||
*/
|
||||
static async renderHTML(indexHTML, statusPage) {
|
||||
const $ = cheerio.load(indexHTML);
|
||||
|
|
|
@ -16,7 +16,7 @@ class TailscalePing extends MonitorType {
|
|||
* @param {object} monitor The monitor object associated with the check.
|
||||
* @param {object} heartbeat The heartbeat object to update.
|
||||
* @returns {Promise<void>}
|
||||
* @throws Will throw an error if checking Tailscale ping encounters any error
|
||||
* @throws Error if checking Tailscale ping encounters any error
|
||||
*/
|
||||
async check(monitor, heartbeat) {
|
||||
try {
|
||||
|
|
|
@ -44,7 +44,7 @@ class AliyunSMS extends NotificationProvider {
|
|||
* Send the SMS notification
|
||||
* @param {BeanModel} notification Notification details
|
||||
* @param {string} msgbody Message template
|
||||
* @returns {boolean} True if successful else false
|
||||
* @returns {Promise<boolean>} True if successful else false
|
||||
*/
|
||||
async sendSms(notification, msgbody) {
|
||||
let params = {
|
||||
|
|
|
@ -92,7 +92,7 @@ class Bark extends NotificationProvider {
|
|||
* @param {string} title Message title
|
||||
* @param {string} subtitle Message
|
||||
* @param {string} endpoint Endpoint to send request to
|
||||
* @returns {string} Success message
|
||||
* @returns {Promise<string>} Success message
|
||||
*/
|
||||
async postNotification(notification, title, subtitle, endpoint) {
|
||||
let result;
|
||||
|
|
|
@ -21,7 +21,7 @@ class DingDing extends NotificationProvider {
|
|||
text: `## [${this.statusToString(heartbeatJSON["status"])}] ${monitorJSON["name"]} \n> ${heartbeatJSON["msg"]}\n> Time (${heartbeatJSON["timezone"]}): ${heartbeatJSON["localDateTime"]}`,
|
||||
}
|
||||
};
|
||||
if (this.sendToDingDing(notification, params)) {
|
||||
if (await this.sendToDingDing(notification, params)) {
|
||||
return okMsg;
|
||||
}
|
||||
} else {
|
||||
|
@ -31,7 +31,7 @@ class DingDing extends NotificationProvider {
|
|||
content: msg
|
||||
}
|
||||
};
|
||||
if (this.sendToDingDing(notification, params)) {
|
||||
if (await this.sendToDingDing(notification, params)) {
|
||||
return okMsg;
|
||||
}
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ class DingDing extends NotificationProvider {
|
|||
* Send message to DingDing
|
||||
* @param {BeanModel} notification Notification to send
|
||||
* @param {object} params Parameters of message
|
||||
* @returns {boolean} True if successful else false
|
||||
* @returns {Promise<boolean>} True if successful else false
|
||||
*/
|
||||
async sendToDingDing(notification, params) {
|
||||
let timestamp = Date.now();
|
||||
|
|
|
@ -107,7 +107,7 @@ class Nostr extends NotificationProvider {
|
|||
/**
|
||||
* Get public keys for recipients
|
||||
* @param {string} recipients Newline delimited list of recipients
|
||||
* @returns {nip19.DecodeResult[]} Public keys
|
||||
* @returns {Promise<nip19.DecodeResult[]>} Public keys
|
||||
*/
|
||||
async getPublicKeys(recipients) {
|
||||
const recipientsList = recipients.split("\n");
|
||||
|
|
|
@ -294,7 +294,7 @@ let needSetup = false;
|
|||
log.debug("server", "Adding socket handler");
|
||||
io.on("connection", async (socket) => {
|
||||
|
||||
sendInfo(socket, true);
|
||||
await sendInfo(socket, true);
|
||||
|
||||
if (needSetup) {
|
||||
log.info("server", "Redirect to setup page");
|
||||
|
@ -326,7 +326,7 @@ let needSetup = false;
|
|||
}
|
||||
|
||||
log.debug("auth", "afterLogin");
|
||||
afterLogin(socket, user);
|
||||
await afterLogin(socket, user);
|
||||
log.debug("auth", "afterLogin ok");
|
||||
|
||||
log.info("auth", `Successfully logged in user ${decoded.username}. IP=${clientIP}`);
|
||||
|
@ -382,7 +382,7 @@ let needSetup = false;
|
|||
|
||||
if (user) {
|
||||
if (user.twofa_status === 0) {
|
||||
afterLogin(socket, user);
|
||||
await afterLogin(socket, user);
|
||||
|
||||
log.info("auth", `Successfully logged in user ${data.username}. IP=${clientIP}`);
|
||||
|
||||
|
@ -405,7 +405,7 @@ let needSetup = false;
|
|||
let verify = notp.totp.verify(data.token, user.twofa_secret, twoFAVerifyOptions);
|
||||
|
||||
if (user.twofa_last_token !== data.token && verify) {
|
||||
afterLogin(socket, user);
|
||||
await afterLogin(socket, user);
|
||||
|
||||
await R.exec("UPDATE `user` SET twofa_last_token = ? WHERE id = ? ", [
|
||||
data.token,
|
||||
|
@ -1351,8 +1351,8 @@ let needSetup = false;
|
|||
msgi18n: true,
|
||||
});
|
||||
|
||||
sendInfo(socket);
|
||||
server.sendMaintenanceList(socket);
|
||||
await sendInfo(socket);
|
||||
await server.sendMaintenanceList(socket);
|
||||
|
||||
} catch (e) {
|
||||
callback({
|
||||
|
@ -1532,7 +1532,7 @@ let needSetup = false;
|
|||
log.debug("auth", "check auto login");
|
||||
if (await setting("disableAuth")) {
|
||||
log.info("auth", "Disabled Auth: auto login to admin");
|
||||
afterLogin(socket, await R.findOne("user"));
|
||||
await afterLogin(socket, await R.findOne("user"));
|
||||
socket.emit("autoLogin");
|
||||
} else {
|
||||
log.debug("auth", "need auth");
|
||||
|
@ -1548,7 +1548,7 @@ let needSetup = false;
|
|||
process.exit(1);
|
||||
});
|
||||
|
||||
server.start();
|
||||
await server.start();
|
||||
|
||||
server.httpServer.listen(port, hostname, () => {
|
||||
if (hostname) {
|
||||
|
@ -1619,13 +1619,13 @@ async function afterLogin(socket, user) {
|
|||
socket.join(user.id);
|
||||
|
||||
let monitorList = await server.sendMonitorList(socket);
|
||||
sendInfo(socket);
|
||||
server.sendMaintenanceList(socket);
|
||||
sendNotificationList(socket);
|
||||
sendProxyList(socket);
|
||||
sendDockerHostList(socket);
|
||||
sendAPIKeyList(socket);
|
||||
sendRemoteBrowserList(socket);
|
||||
await sendInfo(socket);
|
||||
await server.sendMaintenanceList(socket);
|
||||
await sendNotificationList(socket);
|
||||
await sendProxyList(socket);
|
||||
await sendDockerHostList(socket);
|
||||
await sendAPIKeyList(socket);
|
||||
await sendRemoteBrowserList(socket);
|
||||
|
||||
await sleep(500);
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ module.exports = (socket) => {
|
|||
socket.on("shrinkDatabase", async (callback) => {
|
||||
try {
|
||||
checkLogin(socket);
|
||||
Database.shrink();
|
||||
await Database.shrink();
|
||||
callback({
|
||||
ok: true,
|
||||
});
|
||||
|
|
|
@ -195,7 +195,7 @@ class UptimeKumaServer {
|
|||
/**
|
||||
* Send list of monitors to client
|
||||
* @param {Socket} socket Socket to send list on
|
||||
* @returns {object} List of monitors
|
||||
* @returns {Promise<object>} List of monitors
|
||||
*/
|
||||
async sendMonitorList(socket) {
|
||||
let list = await this.getMonitorJSONList(socket.userID);
|
||||
|
@ -227,7 +227,7 @@ class UptimeKumaServer {
|
|||
/**
|
||||
* Send maintenance list to client
|
||||
* @param {Socket} socket Socket.io instance to send to
|
||||
* @returns {object} Maintenance list
|
||||
* @returns {Promise<object>} Maintenance list
|
||||
*/
|
||||
async sendMaintenanceList(socket) {
|
||||
return await this.sendMaintenanceListByUserID(socket.userID);
|
||||
|
@ -236,7 +236,7 @@ class UptimeKumaServer {
|
|||
/**
|
||||
* Send list of maintenances to user
|
||||
* @param {number} userID User to send list to
|
||||
* @returns {object} Maintenance list
|
||||
* @returns {Promise<object>} Maintenance list
|
||||
*/
|
||||
async sendMaintenanceListByUserID(userID) {
|
||||
let list = await this.getMaintenanceJSONList(userID);
|
||||
|
|
|
@ -288,7 +288,7 @@ export default {
|
|||
|
||||
/**
|
||||
* Submit tag and monitorTag changes to server
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async submit() {
|
||||
this.processing = true;
|
||||
|
@ -348,7 +348,7 @@ export default {
|
|||
|
||||
/**
|
||||
* Delete the editing tag from server
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async deleteTag() {
|
||||
this.processing = true;
|
||||
|
|
|
@ -384,7 +384,7 @@ export default {
|
|||
/**
|
||||
* Submit the form data
|
||||
* @param {number} monitorId ID of monitor this change affects
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async submit(monitorId) {
|
||||
console.log(`Submitting tag changes for monitor ${monitorId}...`);
|
||||
|
|
|
@ -85,7 +85,7 @@ export default {
|
|||
|
||||
/**
|
||||
* Get the telegram chat ID
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
* @throws The chat ID could not be found
|
||||
*/
|
||||
async autoGetTelegramChatID() {
|
||||
|
|
|
@ -1470,7 +1470,7 @@ message HealthCheckResponse {
|
|||
|
||||
/**
|
||||
* Submit the form data for processing
|
||||
* @returns {void}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async submit() {
|
||||
|
||||
|
@ -1535,7 +1535,7 @@ message HealthCheckResponse {
|
|||
|
||||
// Start the new parent monitor after edit is done
|
||||
if (createdNewParent) {
|
||||
this.startParentGroupMonitor();
|
||||
await this.startParentGroupMonitor();
|
||||
}
|
||||
this.processing = false;
|
||||
this.$root.getMonitorList();
|
||||
|
|
Loading…
Reference in a new issue