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",
 | 
					  "name": "uptimekuma-api",
 | 
				
			||||||
  "version": "1.0.0",
 | 
					  "version": "1.0.1",
 | 
				
			||||||
  "description": "",
 | 
					  "description": "",
 | 
				
			||||||
  "main": "src/index.js",
 | 
					  "main": "src/index.js",
 | 
				
			||||||
  "types": "src/index.d.ts",
 | 
					  "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 {
 | 
					export default class UptimeKumaApi {
 | 
				
			||||||
    constructor();
 | 
					    constructor(baseURL: string);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    startPushing(code: string, interval?: number);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    startPushing(url:string, interval?:number);
 | 
					 | 
				
			||||||
    cancelPushing();
 | 
					    cancelPushing();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    on(event: "pushSuccessful", handle: (url: string) => void);
 | 
					    on(event: "pushSuccessful", handle: (url: string) => void);
 | 
				
			||||||
    on(event: "pushFailed", handle: (url: string, err: Error) => 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 {
 | 
					module.exports = class UptimeKumaApi extends EventEmitter {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _pushTimer;
 | 
					    _pushTimer;
 | 
				
			||||||
 | 
					    _baseURL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    constructor() {
 | 
					    constructor(baseURL = "") {
 | 
				
			||||||
        super();
 | 
					        super();
 | 
				
			||||||
 | 
					        this._baseURL = baseURL.endsWith("/") ? baseURL : baseURL + "/";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    push(url) {
 | 
					    push(url) {
 | 
				
			||||||
| 
						 | 
					@ -17,17 +19,36 @@ module.exports = class UptimeKumaApi extends EventEmitter {
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    startPushing(url, interval=60) {
 | 
					    startPushing(code, interval = 60) {
 | 
				
			||||||
        if(this._pushTimer)
 | 
					        if (this._pushTimer)
 | 
				
			||||||
            this._pushTimer.cancel();
 | 
					            this._pushTimer.cancel();
 | 
				
			||||||
        this._pushTimer = setInterval(() => {
 | 
					        this._pushTimer = setInterval(() => {
 | 
				
			||||||
            this.push(url);
 | 
					            this.push(this.baseURL+"api/push/"+code);
 | 
				
			||||||
        }, interval*1000);
 | 
					        }, interval * 1000);
 | 
				
			||||||
        this.push(url);
 | 
					        this.push(this.baseURL+"api/push/"+code);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cancelPushing() {
 | 
					    cancelPushing() {
 | 
				
			||||||
        if(this._pushTimer)
 | 
					        if (this._pushTimer)
 | 
				
			||||||
            this._pushTimer.cancel();
 | 
					            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