Add method to get statuses and change pushing args
This commit is contained in:
		
							parent
							
								
									42cec0a8f2
								
							
						
					
					
						commit
						4b0d21e494
					
				| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
{
 | 
			
		||||
  "name": "uptimekuma-api",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "version": "1.0.1",
 | 
			
		||||
  "description": "",
 | 
			
		||||
  "main": "src/index.js",
 | 
			
		||||
  "types": "src/index.d.ts",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										21
									
								
								src/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								src/index.d.ts
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,9 +1,26 @@
 | 
			
		|||
export default class UptimeKumaApi {
 | 
			
		||||
    constructor();
 | 
			
		||||
    constructor(baseURL: string);
 | 
			
		||||
 | 
			
		||||
    startPushing(code: string, interval?: number);
 | 
			
		||||
 | 
			
		||||
    startPushing(url:string, interval?:number);
 | 
			
		||||
    cancelPushing();
 | 
			
		||||
 | 
			
		||||
    on(event: "pushSuccessful", handle: (url: string) => void);
 | 
			
		||||
    on(event: "pushFailed", handle: (url: string, err: Error) => void);
 | 
			
		||||
 | 
			
		||||
    status(): Promise<[{
 | 
			
		||||
        id: number,
 | 
			
		||||
        name: string,
 | 
			
		||||
        weight: number, monitors: [{
 | 
			
		||||
            id: number,
 | 
			
		||||
            name: string,
 | 
			
		||||
            uptime: number,
 | 
			
		||||
            heartbeats: [{
 | 
			
		||||
                status: number,
 | 
			
		||||
                time: string,
 | 
			
		||||
                msg: string,
 | 
			
		||||
                ping: number
 | 
			
		||||
            }]
 | 
			
		||||
        }]
 | 
			
		||||
    }]>;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										35
									
								
								src/index.js
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								src/index.js
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -4,9 +4,11 @@ const EventEmitter = require("events");
 | 
			
		|||
module.exports = class UptimeKumaApi extends EventEmitter {
 | 
			
		||||
 | 
			
		||||
    _pushTimer;
 | 
			
		||||
    _baseURL;
 | 
			
		||||
 | 
			
		||||
    constructor() {
 | 
			
		||||
    constructor(baseURL = "") {
 | 
			
		||||
        super();
 | 
			
		||||
        this._baseURL = baseURL.endsWith("/") ? baseURL : baseURL + "/";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    push(url) {
 | 
			
		||||
| 
						 | 
				
			
			@ -17,17 +19,36 @@ module.exports = class UptimeKumaApi extends EventEmitter {
 | 
			
		|||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    startPushing(url, interval=60) {
 | 
			
		||||
        if(this._pushTimer)
 | 
			
		||||
    startPushing(code, interval = 60) {
 | 
			
		||||
        if (this._pushTimer)
 | 
			
		||||
            this._pushTimer.cancel();
 | 
			
		||||
        this._pushTimer = setInterval(() => {
 | 
			
		||||
            this.push(url);
 | 
			
		||||
        }, interval*1000);
 | 
			
		||||
        this.push(url);
 | 
			
		||||
            this.push(this.baseURL+"api/push/"+code);
 | 
			
		||||
        }, interval * 1000);
 | 
			
		||||
        this.push(this.baseURL+"api/push/"+code);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    cancelPushing() {
 | 
			
		||||
        if(this._pushTimer)
 | 
			
		||||
        if (this._pushTimer)
 | 
			
		||||
            this._pushTimer.cancel();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async status() {
 | 
			
		||||
        let resp = await client.get(this._baseURL + "api/status-page/monitor-list");
 | 
			
		||||
        let heartBeats = (await client.get(this._baseURL + "api/status-page/heartbeat")).data;
 | 
			
		||||
        let result = [];
 | 
			
		||||
        for (let srcCategory of resp.data) {
 | 
			
		||||
            let targetCategory = {id: srcCategory.id, name: srcCategory.name, weight: srcCategory.weight, monitors: []};
 | 
			
		||||
            for (let srcMonitor of srcCategory.monitorList) {
 | 
			
		||||
                targetCategory.monitors.push({
 | 
			
		||||
                    id: srcMonitor.id,
 | 
			
		||||
                    name: srcMonitor.name,
 | 
			
		||||
                    uptime: heartBeats.uptimeList[srcMonitor.id + "_24"],
 | 
			
		||||
                    heartbeats: heartBeats.heartbeatList[srcMonitor.id]
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            result.push(targetCategory);
 | 
			
		||||
        }
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in a new issue