vega-footer-logo
Version:
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 6.1.5.
177 lines (176 loc) • 15.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import { ResultMessage } from '../model/notificationTO';
import { map } from "rxjs/operators";
import * as CryptoJS from "crypto-js";
/** @type {?} */
export var gnGetAllActiveAlertList = "Notify/GetAllActiveAlertList?userId=";
/** @type {?} */
export var gnPostAlertAcknowledgement = "Notify/PostAlertAcknowledgement";
/** @type {?} */
export var gnPostResetAllAlerts = "Notify/PostResetAllAlerts";
var NotificationServices = /** @class */ (function () {
function NotificationServices(http) {
this.http = http;
this.userTO = {};
this.resultMessage = new ResultMessage;
}
/**
* @return {?}
*/
NotificationServices.prototype.getUserTOFromLocalStorage = /**
* @return {?}
*/
function () {
/** @type {?} */
var userTo = {};
userTo = JSON.parse(this.decryption(localStorage.getItem("currentUser")));
if (userTo == undefined || userTo == null) {
}
else {
}
return userTo;
};
/**
* @param {?} Url
* @return {?}
*/
NotificationServices.prototype.getAlertForNotify = /**
* @param {?} Url
* @return {?}
*/
function (Url) {
debugger;
if (this.userTO == null && this.userTO == undefined) {
return;
}
this.getAllActiveNotification(this.userTO, Url).subscribe(function (res) {
/** @type {?} */
var v = res.filter(function (p) { return p.IsAcknowledged == 0; }).length;
if (document.getElementById("bgNotification") != null) {
document.getElementById("bgNotification").innerText = v == 0 ? '' : v.toString();
}
}, function (err) { });
};
/**
* @param {?} UserTo
* @param {?} masterBaseUrl
* @return {?}
*/
NotificationServices.prototype.getAllActiveNotification = /**
* @param {?} UserTo
* @param {?} masterBaseUrl
* @return {?}
*/
function (UserTo, masterBaseUrl) {
/** @type {?} */
var keys = masterBaseUrl + "Notify/GetAllActiveAlertList?userId=1&roleId=1";
return this.http
.get(keys).pipe(map(function (response) { return response.json(); }));
};
/**
* @param {?} notificationTo
* @param {?} loginId
* @param {?} URL
* @return {?}
*/
NotificationServices.prototype.postAlertAcknowledgement = /**
* @param {?} notificationTo
* @param {?} loginId
* @param {?} URL
* @return {?}
*/
function (notificationTo, loginId, URL) {
/** @type {?} */
var params = {
alertUsersTO: notificationTo,
loginUserId: loginId
};
/** @type {?} */
var bodyString = JSON.stringify(params);
/** @type {?} */
var headers = new Headers({ 'Content-Type': 'application/json' });
/** @type {?} */
var options = new RequestOptions({ headers: headers });
return this.http.post(URL + gnPostAlertAcknowledgement, bodyString, options);
};
/**
* @param {?} userTo
* @param {?} URL
* @return {?}
*/
NotificationServices.prototype.postAllAlertAcknowledgement = /**
* @param {?} userTo
* @param {?} URL
* @return {?}
*/
function (userTo, URL) {
/** @type {?} */
var params = {
loginUserId: userTo.IdUser,
roleId: userTo.UserRoleList[0].RoleId
};
/** @type {?} */
var bodyString = JSON.stringify(params);
/** @type {?} */
var headers = new Headers({ 'Content-Type': 'application/json' });
/** @type {?} */
var options = new RequestOptions({ headers: headers });
return this.http.post(URL + gnPostResetAllAlerts, bodyString, options);
};
/**
* @param {?} data
* @return {?}
*/
NotificationServices.prototype.encryption = /**
* @param {?} data
* @return {?}
*/
function (data) {
data = JSON.stringify(data);
/** @type {?} */
var ciphertext = CryptoJS.AES.encrypt(data.toString(), "secret key 123");
return ciphertext.toString();
};
/**
* @param {?} data
* @return {?}
*/
NotificationServices.prototype.decryption = /**
* @param {?} data
* @return {?}
*/
function (data) {
// Decrypt
if (data) {
/** @type {?} */
var bytes = CryptoJS.AES.decrypt(data, "secret key 123");
/** @type {?} */
var plaintext = bytes.toString(CryptoJS.enc.Utf8);
return plaintext;
}
return null;
};
NotificationServices.decorators = [
{ type: Injectable }
];
/** @nocollapse */
NotificationServices.ctorParameters = function () { return [
{ type: Http }
]; };
return NotificationServices;
}());
export { NotificationServices };
if (false) {
/** @type {?} */
NotificationServices.prototype.userTO;
/** @type {?} */
NotificationServices.prototype.resultMessage;
/** @type {?} */
NotificationServices.prototype.http;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uX3NlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdmVnYS1mb290ZXItbG9nby8iLCJzb3VyY2VzIjpbImFwcC9ub3RpZmljYXRpb24vc2VydmljZXMvbm90aWZpY2F0aW9uX3NlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFZLGNBQWMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUEwQixhQUFhLEVBQWlCLE1BQU0seUJBQXlCLENBQUE7QUFDOUYsT0FBTyxFQUFvQixHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQzs7QUFFdEMsV0FBYSx1QkFBdUIsR0FBRyxzQ0FBc0MsQ0FBQzs7QUFDOUUsV0FBYSwwQkFBMEIsR0FBRyxpQ0FBaUMsQ0FBQzs7QUFDNUUsV0FBYSxvQkFBb0IsR0FBRywyQkFBMkIsQ0FBQzs7SUFJNUQsOEJBQW9CLElBQVU7UUFBVixTQUFJLEdBQUosSUFBSSxDQUFNO3NCQUNOLEVBQUU7NkJBQ0ssSUFBSSxhQUFhO0tBRmI7Ozs7SUFHbkMsd0RBQXlCOzs7SUFBekI7O1FBQ0ksSUFBSSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztRQUMvQixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7U0FFM0M7UUFBQyxJQUFJLENBQUMsQ0FBQztTQUNQO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNqQjs7Ozs7SUFDRCxnREFBaUI7Ozs7SUFB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Q0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7O1FBRTVCLElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDaEM7Ozs7O0lBQ0QseUNBQVU7Ozs7SUFBVixVQUFXLElBQUk7O1FBRVgsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs7WUFDUCxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzs7WUFDekQsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDcEI7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDO0tBQ2Y7O2dCQTVFSixVQUFVOzs7O2dCQVhGLElBQUk7OytCQURiOztTQWFhLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cCwgSGVhZGVycywgUmVzcG9uc2UsIFJlcXVlc3RPcHRpb25zLCBCYXNlUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgVXNlclRPLCBOb3RpZmljYXRpb25UTywgUmVzdWx0TWVzc2FnZSwgQ29tbWFvblVzZXJUTyB9IGZyb20gJy4uL21vZGVsL25vdGlmaWNhdGlvblRPJ1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCByZXRyeSxtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgKiBhcyBDcnlwdG9KUyBmcm9tIFwiY3J5cHRvLWpzXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsRXJyb3JPYnNlcnZlcn0gZnJvbSAncnhqcyc7XHJcbmV4cG9ydCBjb25zdCBnbkdldEFsbEFjdGl2ZUFsZXJ0TGlzdCA9IFwiTm90aWZ5L0dldEFsbEFjdGl2ZUFsZXJ0TGlzdD91c2VySWQ9XCI7XHJcbmV4cG9ydCBjb25zdCBnblBvc3RBbGVydEFja25vd2xlZGdlbWVudCA9IFwiTm90aWZ5L1Bvc3RBbGVydEFja25vd2xlZGdlbWVudFwiO1xyXG5leHBvcnQgY29uc3QgZ25Qb3N0UmVzZXRBbGxBbGVydHMgPSBcIk5vdGlmeS9Qb3N0UmVzZXRBbGxBbGVydHNcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2VzIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cCkgeyB9XHJcbiAgICB1c2VyVE86IENvbW1hb25Vc2VyVE8gPSB7fVxyXG4gICAgcmVzdWx0TWVzc2FnZTogUmVzdWx0TWVzc2FnZSA9IG5ldyBSZXN1bHRNZXNzYWdlO1xyXG4gICAgZ2V0VXNlclRPRnJvbUxvY2FsU3RvcmFnZSgpOiBDb21tYW9uVXNlclRPIHtcclxuICAgICAgICBsZXQgdXNlclRvOiBDb21tYW9uVXNlclRPID0ge307XHJcbiAgICAgICAgdXNlclRvID0gSlNPTi5wYXJzZSh0aGlzLmRlY3J5cHRpb24obG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjdXJyZW50VXNlclwiKSkpO1xyXG4gICAgICAgIGlmICh1c2VyVG8gPT0gdW5kZWZpbmVkIHx8IHVzZXJUbyA9PSBudWxsKSB7XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1c2VyVG87XHJcbiAgICB9XHJcbiAgICBnZXRBbGVydEZvck5vdGlmeShVcmwpIHtcclxuICAgICAgICBkZWJ1Z2dlclxyXG4gICAgICAgIGlmICh0aGlzLnVzZXJUTyA9PSBudWxsICYmIHRoaXMudXNlclRPID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0QWxsQWN0aXZlTm90aWZpY2F0aW9uKHRoaXMudXNlclRPLFVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFyIHYgPSByZXMuZmlsdGVyKHAgPT4gcC5Jc0Fja25vd2xlZGdlZCA9PSAwKS5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJiZ05vdGlmaWNhdGlvblwiKSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJiZ05vdGlmaWNhdGlvblwiKS5pbm5lclRleHQgPSB2ID09IDAgPyAnJyA6IHYudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHsgfVxyXG4gICAgICAgIClcclxuXHJcbiAgICB9XHJcbiAgICBnZXRBbGxBY3RpdmVOb3RpZmljYXRpb24oVXNlclRvOiBDb21tYW9uVXNlclRPLG1hc3RlckJhc2VVcmw6c3RyaW5nKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25UT1tdPiB7XHJcbiAgICAgICAgLy9sZXQga2V5cyA9IFwiaHR0cHM6Ly9zaW1wbHlkZWxpdmVyZGVtby52ZWdhaW5ub3ZhdGlvbnMuY28uaW4vbWFkaGF2c2ltcGxpZGVsaXZlcmFwaS9hcGkvTm90aWZ5L0dldEFsbEFjdGl2ZUFsZXJ0TGlzdD91c2VySWQ9MSZyb2xlSWQ9MVwiXHJcbiAgICAgICAgLy9sZXQga2V5cyA9IG1hc3RlckJhc2VVcmwgKyBnbkdldEFsbEFjdGl2ZUFsZXJ0TGlzdCArIFVzZXJUby5JZFVzZXIgKyBcIiZyb2xlSWQ9XCIgKyBVc2VyVG8uVXNlclJvbGVMaXN0WzBdLlJvbGVJZFxyXG4gICAgICAgIGxldCBrZXlzID0gbWFzdGVyQmFzZVVybCArIFwiTm90aWZ5L0dldEFsbEFjdGl2ZUFsZXJ0TGlzdD91c2VySWQ9MSZyb2xlSWQ9MVwiO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldChrZXlzKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UuanNvbigpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zdEFsZXJ0QWNrbm93bGVkZ2VtZW50KG5vdGlmaWNhdGlvblRvOiBOb3RpZmljYXRpb25UT1xyXG4gICAgICAgICwgbG9naW5JZDogbnVtYmVyLFVSTDpzdHJpbmcpIHtcclxuICAgICAgICB2YXIgcGFyYW1zID0ge1xyXG4gICAgICAgICAgICBhbGVydFVzZXJzVE86IG5vdGlmaWNhdGlvblRvLFxyXG4gICAgICAgICAgICBsb2dpblVzZXJJZDogbG9naW5JZFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IGJvZHlTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMpO1xyXG4gICAgICAgIGxldCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xyXG4gICAgICAgIGxldCBvcHRpb25zID0gbmV3IFJlcXVlc3RPcHRpb25zKHsgaGVhZGVyczogaGVhZGVycyB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoVVJMICsgZ25Qb3N0QWxlcnRBY2tub3dsZWRnZW1lbnQsIGJvZHlTdHJpbmcsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHBvc3RBbGxBbGVydEFja25vd2xlZGdlbWVudCh1c2VyVG86IENvbW1hb25Vc2VyVE8sVVJMOnN0cmluZykge1xyXG4gICAgICAgIHZhciBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgIGxvZ2luVXNlcklkOiB1c2VyVG8uSWRVc2VyLFxyXG4gICAgICAgICAgICByb2xlSWQ6IHVzZXJUby5Vc2VyUm9sZUxpc3RbMF0uUm9sZUlkXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgYm9keVN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XHJcbiAgICAgICAgbGV0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiBoZWFkZXJzIH0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChVUkwgKyBnblBvc3RSZXNldEFsbEFsZXJ0cywgYm9keVN0cmluZywgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgZW5jcnlwdGlvbihkYXRhKSB7XHJcbiAgICAgICAgZGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xyXG4gICAgICAgIC8vIEVuY3J5cHRcclxuICAgICAgICB2YXIgY2lwaGVydGV4dCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KGRhdGEudG9TdHJpbmcoKSwgXCJzZWNyZXQga2V5IDEyM1wiKTtcclxuICAgICAgICByZXR1cm4gY2lwaGVydGV4dC50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgZGVjcnlwdGlvbihkYXRhKSB7XHJcbiAgICAgICAgLy8gRGVjcnlwdFxyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHZhciBieXRlcyA9IENyeXB0b0pTLkFFUy5kZWNyeXB0KGRhdGEsIFwic2VjcmV0IGtleSAxMjNcIik7XHJcbiAgICAgICAgICAgIHZhciBwbGFpbnRleHQgPSBieXRlcy50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOCk7XHJcbiAgICAgICAgICAgIHJldHVybiBwbGFpbnRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59Il19