node-firewalla
Version:
Package to talk your firewalla box & API
28 lines (27 loc) • 928 B
JavaScript
import { Networker } from "./Networker.js";
import { AuthApi } from "./AuthApi.js";
import { FWWebGroupApi } from "./FWWebGroupApi.js";
class FWWebLoginApi extends AuthApi {
static _instance;
constructor() {
if (FWWebLoginApi._instance) {
return FWWebLoginApi._instance;
}
super();
FWWebLoginApi._instance = this;
this.setApiNetworker(new Networker(`https://my.firewalla.com`));
}
async getBoxes() {
let boxes = await this.getApiNetworker().authGetRelative("/v1/box/list");
return boxes.map(box => {
let api = new FWWebGroupApi(box.gid);
api.setAuth(this.getApiNetworker().authToken);
return api;
});
}
async getBoxById(gid) {
let boxes = await this.getBoxes();
return boxes.filter(b => b.gid == gid)[0];
}
}
export default new FWWebLoginApi();