@63pokupki/nodejs-common
Version:
Common nodejs functionality
86 lines • 2.82 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MattermostSys = void 0;
const axios_1 = __importDefault(require("axios"));
/** Класс для работы с MatterMost'ом */
class MattermostSys {
constructor(ctx) {
this.ctx = ctx;
this.errorSys = ctx.sys.errorSys;
}
/**
* общий метод для отправки сообщения
* @param msg
* @param hook_url
*/
send(sUrl, msg) {
axios_1.default.post(sUrl, msg);
}
/**
* Отправить сообщение по мониторингу RabbitMQ
* @param sTitle - Заголово сообщения
* @param sMsg - Сообщение
*/
sendMsg(sUrl, sTitle, sMsg) {
const msg = {
attachments: [
{
fallback: 'test',
color: 'info',
text: `:boom: :trollface: ${sTitle}`,
title: `Мониторинг на ${this.ctx.common.env}`,
fields: [
{
short: true,
title: sTitle,
value: sMsg,
},
],
},
],
};
this.send(sUrl, msg);
}
/**
* Отправить сообщение об ошибке в чат errors
* @param errorSys
* @param err
* @param addMessage
*/
sendMsgList(sUrl, aMsgList) {
const msg = {
attachments: [
{
fallback: 'test',
color: 'danger',
text: `:boom: :trollface: ApiKey:${this.ctx.sys.apikey} - ID:${this.ctx.sys.userSys.idUser}`,
title: `Ошибка на ${this.ctx.common.env}`,
fields: [],
},
],
};
try {
for (let i = 0; i < aMsgList.length; i++) {
const v = aMsgList[i];
if (i < 20) { // Максимум 20 ошибок
msg.attachments[0].fields.push({
short: true,
title: v.title,
value: v.value,
});
}
}
}
catch (e) {
this.errorSys.errorEx(e, 'error_format', 'Некоректный формат ошибок с фронта');
}
if (this.errorSys.isOk()) {
this.send(sUrl, msg);
}
}
}
exports.MattermostSys = MattermostSys;
//# sourceMappingURL=MattermostSys.js.map