UNPKG

zabbix-client

Version:
56 lines (55 loc) 2.76 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const ZabbixAPI_1 = require("./ZabbixAPI"); const ZabbixSocket_1 = require("./ZabbixSocket"); const ZabbixResponseException_1 = require("./ZabbixResponseException"); class ZabbixClient { constructor(url) { this.url = url; } login(username, password, relogin = false) { return __awaiter(this, void 0, void 0, function* () { const socket = new ZabbixSocket_1.ZabbixSocket(this.url); const api = new ZabbixAPI_1.ZabbixAPI(socket); const token = yield api.login(username, password); socket.setToken(token); if (relogin) this.ajustLogin(api, username, password); return Promise.resolve(api); }); } ajustLogin(api, username, password) { const http = api.getHttpSocket(); const interceptor = http.interceptors.response.use((response) => __awaiter(this, void 0, void 0, function* () { if (response.data && response.data.error) { const error = response.data.error; if (error.data.toLowerCase().includes('re-login')) { try { const client = new ZabbixClient(this.url); const newApi = yield client.login(username, password); api.getSocket().setToken(newApi.getSocket().getToken()); const data = JSON.parse(response.config.data); data.auth = api.getSocket().getToken(); response.config.data = JSON.stringify(data); return http.request(response.config); } catch (error) { throw new ZabbixResponseException_1.ZabbixResponseException(error.message, response.config); } } } return response; }), error => error); api.setReloginInterceptor(interceptor); } } exports.ZabbixClient = ZabbixClient;