UNPKG

opennms

Version:

Client API for the OpenNMS network monitoring platform

1 lines 26.5 kB
{"remainingRequest":"/data/node_modules/babel-loader/lib/index.js!/data/node_modules/ts-loader/index.js!/data/node_modules/tslint-loader/index.js??ref--4-0!/data/src/dao/SituationFeedbackDAO.ts","dependencies":[{"path":"/data/src/dao/SituationFeedbackDAO.ts","mtime":1553611371628},{"path":"/data/node_modules/typescript-logging/dist/commonjs/typescript-logging.d.ts","mtime":1553611387808},{"path":"/data/node_modules/typescript-logging/dist/commonjs/control/LogGroupControl.d.ts","mtime":1553611387932},{"path":"/data/node_modules/typescript-logging/dist/commonjs/control/CategoryServiceControl.d.ts","mtime":1553611387932},{"path":"/data/node_modules/typescript-logging/dist/commonjs/extension/MessagesToExtensionJSON.d.ts","mtime":1553611387932},{"path":"/data/node_modules/typescript-logging/dist/commonjs/extension/MessagesFromExtensionJSON.d.ts","mtime":1553611387932},{"path":"/data/node_modules/typescript-logging/dist/commonjs/extension/ExtensionMessageJSON.d.ts","mtime":1553611387932},{"path":"/data/node_modules/typescript-logging/dist/commonjs/extension/ExtensionHelper.d.ts","mtime":1553611387932},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/category/AbstractCategoryLogger.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/LoggerOptions.d.ts","mtime":1553611387932},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/category/CategoryLogger.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/category/CategoryService.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/category/CategoryConsoleLoggerImpl.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/category/CategoryDelegateLoggerImpl.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/category/CategoryMessageBufferImpl.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/standard/Logger.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/standard/LoggerFactory.d.ts","mtime":1553611388004},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/standard/LoggerFactoryService.d.ts","mtime":1553611388004},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/standard/LoggerFactoryRuntimeSettings.d.ts","mtime":1553611388004},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/standard/AbstractLogger.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/standard/ConsoleLoggerImpl.d.ts","mtime":1553611388000},{"path":"/data/node_modules/typescript-logging/dist/commonjs/log/standard/MessageBufferLoggerImpl.d.ts","mtime":1553611388004},{"path":"/data/node_modules/typescript-logging/dist/commonjs/utils/DataStructures.d.ts","mtime":1553611387936},{"path":"/data/node_modules/typescript-logging/dist/commonjs/utils/JSONHelper.d.ts","mtime":1553611387936},{"path":"/data/node_modules/typescript-logging/dist/commonjs/utils/MessageUtils.d.ts","mtime":1553611387936},{"path":"/data/node_modules/moment/moment.d.ts","mtime":1553611386704},{"path":"/data/node_modules/axios/index.d.ts","mtime":1553611386356},{"path":"/data/typings/index.d.ts","mtime":1553611371628},{"path":"/data/node_modules/@types/fs-extra/index.d.ts","mtime":1553611386380},{"path":"/data/node_modules/@types/node/index.d.ts","mtime":1553611386380},{"path":"/data/node_modules/@types/node/inspector.d.ts","mtime":1553611386380},{"path":"/data/node_modules/@types/glob/index.d.ts","mtime":1553611386380},{"path":"/data/node_modules/@types/minimatch/index.d.ts","mtime":1553611386380},{"path":"/data/node_modules/@types/glob/node_modules/@types/minimatch/index.d.ts","mtime":1553611386368},{"path":"/data/node_modules/@types/handlebars/index.d.ts","mtime":1553611386368},{"path":"/data/node_modules/@types/highlight.js/index.d.ts","mtime":1553611386368},{"path":"/data/node_modules/@types/jest/index.d.ts","mtime":1553611386368},{"path":"/data/node_modules/@types/jquery/index.d.ts","mtime":1553611386368},{"path":"/data/node_modules/@types/lodash/index.d.ts","mtime":1553611386320},{"path":"/data/node_modules/@types/lodash/common/common.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/array.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/collection.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/date.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/function.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/lang.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/math.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/number.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/object.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/seq.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/string.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/lodash/common/util.d.ts","mtime":1553611386984},{"path":"/data/node_modules/@types/marked/index.d.ts","mtime":1553611386368},{"path":"/data/node_modules/@types/shelljs/index.d.ts","mtime":1553611386380},{"path":"/data/node_modules/@types/urijs/index.d.ts","mtime":1553611386380},{"path":"/data/node_modules/typescript/lib/lib.es2015.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.core.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.collection.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.generator.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.promise.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.iterable.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.symbol.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.proxy.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.reflect.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","mtime":1553611387384},{"path":"/data/node_modules/typescript/lib/lib.es5.d.ts","mtime":1553611387388},{"path":"/data/node_modules/typescript/lib/lib.dom.d.ts","mtime":1553611387384},{"path":"/data/src/dao/BaseDAO.ts","mtime":1553611371628},{"path":"/data/src/api/IHasHTTP.ts","mtime":1553611371624},{"path":"/data/src/internal/IHash.ts","mtime":1553611371628},{"path":"/data/src/api/IOnmsHTTP.ts","mtime":1553611371624},{"path":"/data/src/api/OnmsError.ts","mtime":1553611371624},{"path":"/data/src/api/OnmsHTTPOptions.ts","mtime":1553611371624},{"path":"/data/src/model/OnmsSituationFeedback.ts","mtime":1553611371628},{"path":"/data/src/model/OnmsSituationFeedbackType.ts","mtime":1553611371628},{"path":"/data/src/model/OnmsParm.ts","mtime":1553611371628},{"path":"/data/src/model/OnmsServiceType.ts","mtime":1553611371628},{"path":"/data/src/api/Log.ts","mtime":1553611371624},{"path":"/data/node_modules/typescript-logging/dist/commonjs/typescript-logging.d.ts","mtime":1553611387808},{"path":"/data/.babelrc","mtime":1553611371556},{"path":"/data/node_modules/cache-loader/dist/cjs.js","mtime":1553611387012},{"path":"/data/node_modules/babel-loader/lib/index.js","mtime":1553611386992},{"path":"/data/node_modules/ts-loader/index.js","mtime":1553611386824},{"path":"/data/node_modules/tslint-loader/index.js","mtime":1553611386824}],"contextDependencies":[],"result":["\"use strict\";\n\nvar _regenerator = require(\"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseDAO_1 = require(\"./BaseDAO\");\nvar OnmsError_1 = require(\"../api/OnmsError\");\nvar OnmsHTTPOptions_1 = require(\"../api/OnmsHTTPOptions\");\nvar OnmsSituationFeedback_1 = require(\"../model/OnmsSituationFeedback\");\nvar OnmsSituationFeedbackType_1 = require(\"../model/OnmsSituationFeedbackType\");\n/**\n * Data access for [[OnmsSituationFeedback]] objects.\n * @module SituationFeedbackDAO\n */\n\nvar SituationFeedbackDAO = function (_BaseDAO_1$BaseDAO) {\n _inherits(SituationFeedbackDAO, _BaseDAO_1$BaseDAO);\n\n function SituationFeedbackDAO(impl) {\n _classCallCheck(this, SituationFeedbackDAO);\n\n return _possibleConstructorReturn(this, (SituationFeedbackDAO.__proto__ || Object.getPrototypeOf(SituationFeedbackDAO)).call(this, impl));\n }\n /**\n * Retrieve feedback.\n *\n * @version ReST v1\n * @param {number} situationId - The alarmId of the Situation to use when querying.\n * @return An array of [[OnmsSituationFeedback]] objects.\n */\n\n\n _createClass(SituationFeedbackDAO, [{\n key: \"getFeedback\",\n value: function getFeedback(situationId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var _this2 = this;\n\n var options;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n options = new OnmsHTTPOptions_1.OnmsHTTPOptions();\n\n options.headers.accept = 'application/json';\n return _context.abrupt(\"return\", this.http.get(this.pathToEndpoint() + '/' + situationId, options).then(function (result) {\n var data = _this2.getData(result);\n if (!Array.isArray(data)) {\n if (!data) {\n return [];\n }\n throw new OnmsError_1.OnmsError('Expected an array of feedback but got \"' + (typeof data === \"undefined\" ? \"undefined\" : _typeof(data)) + '\" instead.');\n }\n return data.map(function (feedbackData) {\n return _this2.fromData(feedbackData);\n });\n }));\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n /**\n * Submit Correlation Feedback for a Situation.\n *\n * @version ReST v1\n * @param {number} situationId - The alarmId of the Situation to use when querying.\n * @param {OnmsSituationFeedback[]} feedback - The [[OnmsSituationFeedback]].\n */\n\n }, {\n key: \"saveFeedback\",\n value: function saveFeedback(feedback, situationId) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", this.post(this.pathToEndpoint() + '/' + situationId, this.serializeFeedback(feedback)));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n }\n /**\n * Extracts the data from an HTTP Request result.\n *\n * @param result the HTTP Request result.\n * @returns An array of [[OnmsSituationFeedback]] objects.\n */\n\n }, {\n key: \"getData\",\n value: function getData(result) {\n var data = result.data;\n if (!Array.isArray(data)) {\n throw new OnmsError_1.OnmsError('Expected an array of situationFeedback but got \"' + (typeof data === \"undefined\" ? \"undefined\" : _typeof(data)) + '\" instead.');\n }\n return data;\n }\n /**\n * Generate a feedback object from the given dictionary.\n * @hidden\n */\n\n }, {\n key: \"fromData\",\n value: function fromData(data) {\n var feedback = new OnmsSituationFeedback_1.OnmsSituationFeedback();\n feedback.situationKey = data.situationKey;\n feedback.fingerprint = data.situationFingerprint;\n feedback.alarmKey = data.alarmKey;\n feedback.reason = data.reason;\n feedback.user = data.user;\n if (data.feedbackType) {\n var fbt = data.feedbackType;\n feedback.feedbackType = OnmsSituationFeedbackType_1.OnmsSituationFeedbackType.forId(fbt);\n }\n feedback.timestamp = this.toNumber(data.timestamp);\n return feedback;\n }\n /**\n * Serialize the feedbackType as a string.\n * @hidden\n */\n\n }, {\n key: \"serializeFeedback\",\n value: function serializeFeedback(feedback) {\n var serializeFeedback = [];\n feedback.forEach(function (fb) {\n // Create a shallow clone\n var sfb = Object.assign({}, fb);\n // Set the type to the id, to avoid serializing it as an object\n if (sfb.feedbackType !== null) {\n sfb.feedbackType = sfb.feedbackType.id;\n }\n serializeFeedback.push(sfb);\n });\n return serializeFeedback;\n }\n /**\n * Call a POST request in the format the SituationFeedback API expects.\n * @hidden\n */\n\n }, {\n key: \"post\",\n value: function post(url, data) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator2.default.mark(function _callee3() {\n var options;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n options = new OnmsHTTPOptions_1.OnmsHTTPOptions();\n\n options.headers['content-type'] = 'application/json';\n options.headers.accept = 'application/json';\n options.data = data;\n return _context3.abrupt(\"return\", this.http.post(url, options).then(function (result) {\n if (!result.isSuccess) {\n throw result;\n }\n return;\n }));\n\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n }\n /**\n * Get the path to the SituationFeedback endpoint.\n * @hidden\n */\n\n }, {\n key: \"pathToEndpoint\",\n value: function pathToEndpoint() {\n return 'rest/situation-feedback';\n }\n }]);\n\n return SituationFeedbackDAO;\n}(BaseDAO_1.BaseDAO);\n\nexports.SituationFeedbackDAO = SituationFeedbackDAO;",{"version":3,"file":"/data/src/dao/SituationFeedbackDAO.ts","sourceRoot":"","sources":["/data/node_modules/tslint-loader/index.js??ref--4-0!/data/src/dao/SituationFeedbackDAO.ts"],"names":[],"mappings":"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","sourcesContent":["import {BaseDAO} from './BaseDAO';\n\nimport {IHasHTTP} from '../api/IHasHTTP';\nimport {IHash} from '../internal/IHash';\nimport {IOnmsHTTP} from '../api/IOnmsHTTP';\nimport {OnmsError} from '../api/OnmsError';\nimport {OnmsHTTPOptions} from '../api/OnmsHTTPOptions';\n\nimport {OnmsSituationFeedback} from '../model/OnmsSituationFeedback';\nimport {FeedbackTypes, OnmsSituationFeedbackType} from '../model/OnmsSituationFeedbackType';\n\nimport {OnmsParm} from '../model/OnmsParm';\nimport {OnmsServiceType} from '../model/OnmsServiceType';\n\nimport {log, catDao} from '../api/Log';\nimport {Category} from 'typescript-logging';\n\n/**\n * Data access for [[OnmsSituationFeedback]] objects.\n * @module SituationFeedbackDAO\n */\nexport class SituationFeedbackDAO extends BaseDAO {\n\n constructor(impl: IHasHTTP | IOnmsHTTP) {\n super(impl);\n }\n\n /**\n * Retrieve feedback.\n *\n * @version ReST v1\n * @param {number} situationId - The alarmId of the Situation to use when querying.\n * @return An array of [[OnmsSituationFeedback]] objects.\n */\n public async getFeedback(situationId: number): Promise<OnmsSituationFeedback[]> {\n const options = new OnmsHTTPOptions();\n options.headers.accept = 'application/json';\n return this.http.get(this.pathToEndpoint() + '/' + situationId, options).then((result) => {\n const data = this.getData(result);\n if (!Array.isArray(data)) {\n if (!data) {\n return [] as OnmsSituationFeedback[];\n }\n throw new OnmsError('Expected an array of feedback but got \"' + (typeof data) + '\" instead.');\n }\n return data.map((feedbackData) => {\n return this.fromData(feedbackData);\n });\n });\n }\n\n /**\n * Submit Correlation Feedback for a Situation.\n *\n * @version ReST v1\n * @param {number} situationId - The alarmId of the Situation to use when querying.\n * @param {OnmsSituationFeedback[]} feedback - The [[OnmsSituationFeedback]].\n */\n public async saveFeedback(feedback: OnmsSituationFeedback[], situationId: number): Promise<void> {\n return this.post(this.pathToEndpoint() + '/' + situationId, this.serializeFeedback(feedback));\n }\n\n /**\n * Extracts the data from an HTTP Request result.\n *\n * @param result the HTTP Request result.\n * @returns An array of [[OnmsSituationFeedback]] objects.\n */\n public getData(result: any): OnmsSituationFeedback[] {\n const data = result.data;\n if (!Array.isArray(data)) {\n throw new OnmsError('Expected an array of situationFeedback but got \"' + (typeof data) + '\" instead.');\n }\n return data;\n }\n\n /**\n * Generate a feedback object from the given dictionary.\n * @hidden\n */\n public fromData(data: any) {\n const feedback = new OnmsSituationFeedback();\n feedback.situationKey = data.situationKey;\n feedback.fingerprint = data.situationFingerprint;\n feedback.alarmKey = data.alarmKey;\n feedback.reason = data.reason;\n feedback.user = data.user;\n if (data.feedbackType) {\n const fbt = data.feedbackType;\n feedback.feedbackType = OnmsSituationFeedbackType.forId(fbt);\n }\n feedback.timestamp = this.toNumber(data.timestamp);\n return feedback;\n }\n\n /**\n * Serialize the feedbackType as a string.\n * @hidden\n */\n public serializeFeedback(feedback: OnmsSituationFeedback[]): any[] {\n const serializeFeedback = [];\n feedback.forEach((fb) => {\n // Create a shallow clone\n const sfb = Object.assign({}, fb) as any;\n // Set the type to the id, to avoid serializing it as an object\n if (sfb.feedbackType !== null) {\n sfb.feedbackType = sfb.feedbackType.id;\n }\n serializeFeedback.push(sfb);\n });\n return serializeFeedback;\n }\n\n /**\n * Call a POST request in the format the SituationFeedback API expects.\n * @hidden\n */\n private async post(url: string, data: any): Promise<void> {\n const options = new OnmsHTTPOptions();\n options.headers['content-type'] = 'application/json';\n options.headers.accept = 'application/json';\n options.data = data;\n return this.http.post(url, options).then((result) => {\n if (!result.isSuccess) {\n throw result;\n }\n return;\n });\n }\n\n /**\n * Get the path to the SituationFeedback endpoint.\n * @hidden\n */\n private pathToEndpoint() {\n return 'rest/situation-feedback';\n }\n\n}\n"]}]}