dt-common-device 7.2.1 → 7.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/Admin.repository.d.ts +7 -0
- package/dist/admin/Admin.repository.js +182 -0
- package/dist/admin/Admin.service.d.ts +5 -0
- package/dist/admin/Admin.service.js +17 -0
- package/dist/admin/index.d.ts +1 -0
- package/dist/admin/index.js +17 -0
- package/dist/alerts/Alert.model.d.ts +1 -1
- package/dist/alerts/Alert.model.js +5 -0
- package/dist/alerts/Alert.repository.js +10 -0
- package/dist/alerts/Alert.service.d.ts +0 -7
- package/dist/alerts/Alert.service.js +107 -66
- package/dist/alerts/AlertBuilder.d.ts +5 -1
- package/dist/alerts/AlertBuilder.js +10 -0
- package/dist/alerts/alert.types.d.ts +17 -0
- package/dist/alerts/alert.types.js +13 -1
- package/dist/audit/AuditProperties.d.ts +16 -0
- package/dist/audit/AuditProperties.js +2 -0
- package/dist/chronicle/IChronicle.interface.d.ts +14 -0
- package/dist/chronicle/IChronicle.interface.js +2 -0
- package/dist/chronicle/chronicle.service.d.ts +4 -0
- package/dist/chronicle/chronicle.service.js +44 -0
- package/dist/connection/Connection.repository.d.ts +8 -0
- package/dist/connection/Connection.repository.js +92 -0
- package/dist/connection/Connection.service.d.ts +8 -0
- package/dist/connection/Connection.service.js +32 -0
- package/dist/connection/IConnection.d.ts +28 -0
- package/dist/connection/IConnection.js +16 -0
- package/dist/connection/index.d.ts +2 -0
- package/dist/connection/index.js +18 -0
- package/dist/constants/Event.d.ts +3 -1
- package/dist/constants/Event.js +3 -1
- package/dist/device/cloud/entities/CloudConnection.d.ts +6 -0
- package/dist/device/cloud/entities/CloudConnection.js +6 -0
- package/dist/device/cloud/entities/CloudDevice.d.ts +16 -0
- package/dist/device/cloud/entities/CloudDevice.js +26 -0
- package/dist/device/cloud/entities/CloudDeviceService.d.ts +5 -0
- package/dist/device/cloud/entities/CloudDeviceService.js +9 -0
- package/dist/device/cloud/entities/DeviceFactory.d.ts +7 -0
- package/dist/device/cloud/entities/DeviceFactory.js +80 -0
- package/dist/device/cloud/entities/index.d.ts +3 -0
- package/dist/device/cloud/entities/index.js +19 -0
- package/dist/device/cloud/interface.d.ts +101 -0
- package/dist/device/cloud/interface.js +3 -0
- package/dist/device/cloud/interfaces/ICloudConnection.d.ts +5 -0
- package/dist/device/cloud/interfaces/ICloudConnection.js +2 -0
- package/dist/device/cloud/interfaces/ICloudDevice.d.ts +9 -0
- package/dist/device/cloud/interfaces/ICloudDevice.js +2 -0
- package/dist/device/cloud/interfaces/ICloudDeviceService.d.ts +4 -0
- package/dist/device/cloud/interfaces/ICloudDeviceService.js +2 -0
- package/dist/device/cloud/interfaces/IConnectionService.d.ts +7 -0
- package/dist/device/cloud/interfaces/IConnectionService.js +2 -0
- package/dist/device/cloud/interfaces/IDeviceConnectionService.d.ts +7 -0
- package/dist/device/cloud/interfaces/IDeviceConnectionService.js +3 -0
- package/dist/device/cloud/interfaces/IDeviceFactory.d.ts +4 -0
- package/dist/device/cloud/interfaces/IDeviceFactory.js +2 -0
- package/dist/device/cloud/interfaces/IDeviceService.d.ts +8 -0
- package/dist/device/cloud/interfaces/IDeviceService.js +2 -0
- package/dist/device/cloud/interfaces/IDevicesService.d.ts +9 -0
- package/dist/device/cloud/interfaces/IDevicesService.js +2 -0
- package/dist/device/cloud/interfaces/IHubService.d.ts +5 -0
- package/dist/device/cloud/interfaces/IHubService.js +2 -0
- package/dist/device/cloud/interfaces/IRawDataTransformer.d.ts +4 -0
- package/dist/device/cloud/interfaces/IRawDataTransformer.js +2 -0
- package/dist/device/cloud/interfaces/IRawDevice.d.ts +17 -0
- package/dist/device/cloud/interfaces/IRawDevice.js +11 -0
- package/dist/device/cloud/interfaces/index.d.ts +5 -0
- package/dist/device/cloud/interfaces/index.js +21 -0
- package/dist/device/cloud/services/CloudDevice.service.d.ts +5 -0
- package/dist/device/cloud/services/CloudDevice.service.js +9 -0
- package/dist/device/cloud/services/Connection.service.d.ts +8 -0
- package/dist/device/cloud/services/Connection.service.js +6 -0
- package/dist/device/cloud/services/Device.service.d.ts +39 -0
- package/dist/device/cloud/services/Device.service.js +9 -0
- package/dist/device/cloud/services/DeviceCloudService.d.ts +42 -0
- package/dist/device/cloud/services/DeviceCloudService.js +59 -0
- package/dist/device/cloud/services/DeviceHub.service.d.ts +3 -0
- package/dist/device/cloud/services/DeviceHub.service.js +6 -0
- package/dist/device/cloud/services/Hub.service.d.ts +25 -0
- package/dist/device/cloud/services/Hub.service.js +9 -0
- package/dist/device/cloud/services/SmartThingsDeviceService.d.ts +38 -0
- package/dist/device/cloud/services/SmartThingsDeviceService.js +52 -0
- package/dist/device/cloud/services/index.d.ts +2 -0
- package/dist/device/cloud/services/index.js +18 -0
- package/dist/device/cloud/types.d.ts +52 -0
- package/dist/device/cloud/types.js +15 -0
- package/dist/device/index.d.ts +4 -0
- package/dist/device/index.js +20 -0
- package/dist/device/local/entities/AlertBuilder.d.ts +87 -0
- package/dist/device/local/entities/AlertBuilder.example.d.ts +11 -0
- package/dist/device/local/entities/AlertBuilder.example.js +117 -0
- package/dist/device/local/entities/AlertBuilder.js +179 -0
- package/dist/device/local/entities/IssueBuilder.d.ts +109 -0
- package/dist/device/local/entities/IssueBuilder.example.d.ts +16 -0
- package/dist/device/local/entities/IssueBuilder.example.js +196 -0
- package/dist/device/local/entities/IssueBuilder.js +237 -0
- package/dist/device/local/entities/index.d.ts +2 -0
- package/dist/device/local/entities/index.js +7 -0
- package/dist/device/local/events/EventHandler.d.ts +11 -0
- package/dist/device/local/events/EventHandler.js +86 -0
- package/dist/device/local/events/Events.d.ts +54 -0
- package/dist/device/local/events/Events.js +57 -0
- package/dist/device/local/events/index.d.ts +2 -0
- package/dist/device/local/events/index.js +7 -0
- package/dist/device/local/handler/EventHandler.d.ts +7 -0
- package/dist/device/local/handler/EventHandler.js +44 -0
- package/dist/device/local/interface.d.ts +0 -0
- package/dist/device/local/interface.js +1 -0
- package/dist/device/local/interfaces/IConnection.d.ts +26 -0
- package/dist/device/local/interfaces/IConnection.js +14 -0
- package/dist/device/local/interfaces/IDevice.d.ts +68 -0
- package/dist/device/local/interfaces/IDevice.js +10 -0
- package/dist/device/local/interfaces/IDtDevice.d.ts +16 -0
- package/dist/device/local/interfaces/IDtDevice.js +2 -0
- package/dist/device/local/interfaces/IHub.d.ts +46 -0
- package/dist/device/local/interfaces/IHub.js +2 -0
- package/dist/device/local/interfaces/IProperty.d.ts +29 -0
- package/dist/device/local/interfaces/IProperty.js +2 -0
- package/dist/device/local/interfaces/ISchedule.d.ts +25 -0
- package/dist/device/local/interfaces/ISchedule.js +2 -0
- package/dist/device/local/interfaces/index.d.ts +3 -0
- package/dist/device/local/interfaces/index.js +19 -0
- package/dist/device/local/models/Alert.model.d.ts +28 -0
- package/dist/device/local/models/Alert.model.js +222 -0
- package/dist/device/local/models/Issue.model.d.ts +28 -0
- package/dist/device/local/models/Issue.model.js +260 -0
- package/dist/device/local/repository/Alert.repository.d.ts +106 -0
- package/dist/device/local/repository/Alert.repository.js +374 -0
- package/dist/device/local/repository/Connection.repository.d.ts +8 -0
- package/dist/device/local/repository/Connection.repository.js +92 -0
- package/dist/device/local/repository/Device.repository.d.ts +30 -0
- package/dist/device/local/repository/Device.repository.js +325 -0
- package/dist/device/local/repository/Hub.repository.d.ts +13 -0
- package/dist/device/local/repository/Hub.repository.js +139 -0
- package/dist/device/local/repository/Issue.repository.d.ts +113 -0
- package/dist/device/local/repository/Issue.repository.js +401 -0
- package/dist/device/local/repository/Property.repository.d.ts +8 -0
- package/dist/device/local/repository/Property.repository.js +95 -0
- package/dist/device/local/repository/Schedule.repository.d.ts +9 -0
- package/dist/device/local/repository/Schedule.repository.js +109 -0
- package/dist/device/local/services/Alert.service.d.ts +137 -0
- package/dist/device/local/services/Alert.service.js +475 -0
- package/dist/device/local/services/AlertService.example.d.ts +55 -0
- package/dist/device/local/services/AlertService.example.js +148 -0
- package/dist/device/local/services/Connection.service.d.ts +8 -0
- package/dist/device/local/services/Connection.service.js +32 -0
- package/dist/device/local/services/Device.service.d.ts +40 -0
- package/dist/device/local/services/Device.service.js +391 -0
- package/dist/device/local/services/DeviceHub.service.d.ts +11 -0
- package/dist/device/local/services/DeviceHub.service.js +40 -0
- package/dist/device/local/services/Hub.service.d.ts +12 -0
- package/dist/device/local/services/Hub.service.js +107 -0
- package/dist/device/local/services/Issue.service.d.ts +168 -0
- package/dist/device/local/services/Issue.service.js +642 -0
- package/dist/device/local/services/IssueService.example.d.ts +68 -0
- package/dist/device/local/services/IssueService.example.js +177 -0
- package/dist/device/local/services/Property.service.d.ts +8 -0
- package/dist/device/local/services/Property.service.js +36 -0
- package/dist/device/local/services/Schedule.service.d.ts +9 -0
- package/dist/device/local/services/Schedule.service.js +26 -0
- package/dist/device/local/services/index.d.ts +3 -0
- package/dist/device/local/services/index.js +19 -0
- package/dist/entities/accessGroup/AccessGroup.repository.d.ts +1 -2
- package/dist/entities/accessGroup/AccessGroup.repository.js +1 -4
- package/dist/entities/accessGroup/AccessGroup.service.d.ts +1 -2
- package/dist/entities/accessGroup/AccessGroup.service.js +3 -4
- package/dist/entities/device/local/services/Device.service.d.ts +1 -0
- package/dist/entities/device/local/services/Device.service.js +43 -10
- package/dist/entities/guest/Guest.repository.d.ts +1 -1
- package/dist/entities/guest/Guest.repository.js +2 -5
- package/dist/entities/guest/Guest.service.d.ts +1 -1
- package/dist/entities/guest/Guest.service.js +1 -4
- package/dist/entities/schedules/Schedule.repository.d.ts +1 -1
- package/dist/entities/schedules/Schedule.repository.js +2 -5
- package/dist/entities/schedules/Schedule.service.d.ts +1 -1
- package/dist/entities/schedules/Schedule.service.js +1 -4
- package/dist/entities/user/User.repository.js +1 -4
- package/dist/entities/user/User.service.d.ts +1 -1
- package/dist/entities/user/User.service.js +1 -4
- package/dist/entities/zone/Zone.service.js +1 -4
- package/dist/events/DeviceEventHandler.js +1 -1
- package/dist/events/EventHandler.d.ts +1 -0
- package/dist/events/EventHandler.js +10 -0
- package/dist/issues/Issue.model.d.ts +1 -1
- package/dist/issues/Issue.repository.js +12 -0
- package/dist/issues/Issue.service.d.ts +0 -1
- package/dist/issues/Issue.service.js +40 -16
- package/dist/issues/issue.types.d.ts +3 -10
- package/dist/issues/issue.types.js +0 -9
- package/dist/pms/IPms.d.ts +6 -0
- package/dist/pms/IPms.js +10 -0
- package/dist/pms/index.d.ts +1 -0
- package/dist/pms/index.js +17 -0
- package/dist/property/IProperty.d.ts +29 -0
- package/dist/property/IProperty.js +2 -0
- package/dist/property/Property.repository.d.ts +8 -0
- package/dist/property/Property.repository.js +109 -0
- package/dist/property/Property.service.d.ts +8 -0
- package/dist/property/Property.service.js +124 -0
- package/dist/property/index.d.ts +2 -0
- package/dist/property/index.js +18 -0
- package/dist/queue/interfaces/IHttpRequestJob.d.ts +9 -0
- package/dist/queue/interfaces/IHttpRequestJob.js +2 -0
- package/dist/types/alert.types.d.ts +57 -0
- package/dist/types/alert.types.js +22 -0
- package/dist/types/config.types.d.ts +19 -0
- package/dist/types/config.types.js +2 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +19 -0
- package/dist/types/issue.types.d.ts +90 -0
- package/dist/types/issue.types.js +40 -0
- package/dist/utils/http-utils.d.ts +13 -0
- package/dist/utils/http-utils.js +117 -0
- package/package.json +1 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
19
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
20
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
21
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
22
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
23
|
+
var _, done = false;
|
|
24
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
25
|
+
var context = {};
|
|
26
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
27
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
28
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
29
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
30
|
+
if (kind === "accessor") {
|
|
31
|
+
if (result === void 0) continue;
|
|
32
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
33
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
34
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
35
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
36
|
+
}
|
|
37
|
+
else if (_ = accept(result)) {
|
|
38
|
+
if (kind === "field") initializers.unshift(_);
|
|
39
|
+
else descriptor[key] = _;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
43
|
+
done = true;
|
|
44
|
+
};
|
|
45
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
46
|
+
var useValue = arguments.length > 2;
|
|
47
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
48
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
49
|
+
}
|
|
50
|
+
return useValue ? value : void 0;
|
|
51
|
+
};
|
|
52
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
53
|
+
var ownKeys = function(o) {
|
|
54
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
55
|
+
var ar = [];
|
|
56
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
57
|
+
return ar;
|
|
58
|
+
};
|
|
59
|
+
return ownKeys(o);
|
|
60
|
+
};
|
|
61
|
+
return function (mod) {
|
|
62
|
+
if (mod && mod.__esModule) return mod;
|
|
63
|
+
var result = {};
|
|
64
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
65
|
+
__setModuleDefault(result, mod);
|
|
66
|
+
return result;
|
|
67
|
+
};
|
|
68
|
+
})();
|
|
69
|
+
var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
|
|
70
|
+
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
|
|
71
|
+
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
|
|
72
|
+
};
|
|
73
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
74
|
+
exports.AdminRepository = void 0;
|
|
75
|
+
const typedi_1 = __importStar(require("typedi"));
|
|
76
|
+
const utils_1 = require("../utils");
|
|
77
|
+
const Device_repository_1 = require("../device/local/repository/Device.repository");
|
|
78
|
+
const db_1 = require("../db/db");
|
|
79
|
+
const interfaces_1 = require("../device/cloud/interfaces");
|
|
80
|
+
let AdminRepository = (() => {
|
|
81
|
+
let _classDecorators = [(0, typedi_1.Service)()];
|
|
82
|
+
let _classDescriptor;
|
|
83
|
+
let _classExtraInitializers = [];
|
|
84
|
+
let _classThis;
|
|
85
|
+
var AdminRepository = _classThis = class {
|
|
86
|
+
constructor() {
|
|
87
|
+
this.axiosInstance = (0, utils_1.getCloudServiceAxiosInstance)();
|
|
88
|
+
this.deviceRepository = typedi_1.default.get(Device_repository_1.DeviceRepository);
|
|
89
|
+
this.postgres = (0, db_1.getPostgresClient)();
|
|
90
|
+
}
|
|
91
|
+
async getZonesByAccessGroupIds(accessGroupIds) {
|
|
92
|
+
const result = await this.postgres.query(`SELECT "zc".*, "z"."id", "z"."name"
|
|
93
|
+
FROM "dt_zones_collection_map" "zc"
|
|
94
|
+
INNER JOIN "dt_zones" "z" ON "zc"."zoneId" = "z"."id"
|
|
95
|
+
WHERE "zc"."collectionId" = ANY($1)`, [accessGroupIds]);
|
|
96
|
+
const response = result.rows;
|
|
97
|
+
const _zones = (nestedZones, allzones = []) => {
|
|
98
|
+
nestedZones.forEach((z) => {
|
|
99
|
+
const onlyZone = { ...z };
|
|
100
|
+
delete onlyZone.childZones;
|
|
101
|
+
allzones.push(onlyZone);
|
|
102
|
+
if (!Array.isArray(z.childZones)) {
|
|
103
|
+
if (z.childZones.id)
|
|
104
|
+
z.childZones = [z.childZones];
|
|
105
|
+
}
|
|
106
|
+
if (z.childZones.length) {
|
|
107
|
+
_zones(z.childZones, allzones);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
return allzones.map((e) => e.id);
|
|
111
|
+
};
|
|
112
|
+
// const zones = _zones(response);
|
|
113
|
+
const zoneIds = response.map((el) => el.id);
|
|
114
|
+
const collectionZone = [];
|
|
115
|
+
for (let i = 0; i < response.length; i++) {
|
|
116
|
+
let zoneIds = [];
|
|
117
|
+
const zones = await this.axiosInstance.get(`/zones/child?zoneId=${response[i].zoneId}`);
|
|
118
|
+
zoneIds.push(response[i].zoneId);
|
|
119
|
+
if (zones.childZones?.length > 0) {
|
|
120
|
+
const nestedZoneIds = new Set(_zones(zones.childZones));
|
|
121
|
+
zoneIds = [...zoneIds, ...nestedZoneIds];
|
|
122
|
+
}
|
|
123
|
+
if (collectionZone.length == 0) {
|
|
124
|
+
const obj = {
|
|
125
|
+
collectionId: response[i].collectionId,
|
|
126
|
+
zoneIds,
|
|
127
|
+
};
|
|
128
|
+
collectionZone.push(obj);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const obj = collectionZone.find((e) => e.collectionId == response[i].collectionId);
|
|
132
|
+
if (obj) {
|
|
133
|
+
obj.zoneIds = [...obj.zoneIds, ...zoneIds];
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
collectionZone.push({
|
|
137
|
+
collectionId: response[i].collectionId,
|
|
138
|
+
zoneIds,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
let _zoneIds = collectionZone.flatMap((e) => {
|
|
144
|
+
return e.zoneIds.map((z) => z);
|
|
145
|
+
});
|
|
146
|
+
if (_zoneIds.length === 0)
|
|
147
|
+
return [];
|
|
148
|
+
const deviecDetail = await this.deviceRepository.queryDevices({
|
|
149
|
+
zoneIds: _zoneIds,
|
|
150
|
+
excludeDeviceType: interfaces_1.DeviceType.HUB
|
|
151
|
+
});
|
|
152
|
+
const _collectionZone = collectionZone.map((e) => {
|
|
153
|
+
const zones = e.zoneIds;
|
|
154
|
+
let devices = [];
|
|
155
|
+
zones.forEach((element) => {
|
|
156
|
+
const device = deviecDetail.filter((d) => d.zoneId == element);
|
|
157
|
+
// Add collectionId to each device
|
|
158
|
+
device.forEach((dev) => {
|
|
159
|
+
dev.collectionId = e.collectionId;
|
|
160
|
+
});
|
|
161
|
+
const _devices = devices.concat(device);
|
|
162
|
+
devices = _devices;
|
|
163
|
+
});
|
|
164
|
+
e.devices = devices;
|
|
165
|
+
e.parentZone = response;
|
|
166
|
+
return e;
|
|
167
|
+
});
|
|
168
|
+
const collectionZoneDevices = Array.from(new Set(_collectionZone));
|
|
169
|
+
return collectionZoneDevices;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
__setFunctionName(_classThis, "AdminRepository");
|
|
173
|
+
(() => {
|
|
174
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
175
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
176
|
+
AdminRepository = _classThis = _classDescriptor.value;
|
|
177
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
178
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
179
|
+
})();
|
|
180
|
+
return AdminRepository = _classThis;
|
|
181
|
+
})();
|
|
182
|
+
exports.AdminRepository = AdminRepository;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AdminService = void 0;
|
|
7
|
+
const typedi_1 = __importDefault(require("typedi"));
|
|
8
|
+
const Admin_repository_1 = require("./Admin.repository");
|
|
9
|
+
class AdminService {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.adminRepository = typedi_1.default.get(Admin_repository_1.AdminRepository);
|
|
12
|
+
}
|
|
13
|
+
async getZonesByAccessGroupIds(accessGroupIds) {
|
|
14
|
+
return await this.adminRepository.getZonesByAccessGroupIds(accessGroupIds);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.AdminService = AdminService;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Admin.service";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Admin.service"), exports);
|
|
@@ -13,7 +13,7 @@ interface IAlertModel extends Model<IAlertDocument, {}, IAlertMethods> {
|
|
|
13
13
|
findSnoozed(includeDeleted?: boolean): Promise<IAlertDocument[]>;
|
|
14
14
|
findExpiredSnooze(includeDeleted?: boolean): Promise<IAlertDocument[]>;
|
|
15
15
|
}
|
|
16
|
-
declare const AlertSchema: mongoose.Schema<IAlertDocument, IAlertModel, IAlertMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IAlertDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IAlertDocument>, {}
|
|
16
|
+
declare const AlertSchema: mongoose.Schema<IAlertDocument, IAlertModel, IAlertMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IAlertDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IAlertDocument>, {}> & Omit<mongoose.FlatRecord<IAlertDocument> & Required<{
|
|
17
17
|
_id: string;
|
|
18
18
|
}> & {
|
|
19
19
|
__v: number;
|
|
@@ -79,6 +79,11 @@ const AlertSchema = new mongoose_1.Schema({
|
|
|
79
79
|
enum: Object.values(alert_types_1.AlertSeverity),
|
|
80
80
|
default: alert_types_1.AlertSeverity.LOW,
|
|
81
81
|
},
|
|
82
|
+
type: {
|
|
83
|
+
type: String,
|
|
84
|
+
enum: Object.values(alert_types_1.AlertType),
|
|
85
|
+
required: true,
|
|
86
|
+
},
|
|
82
87
|
isRead: {
|
|
83
88
|
type: Boolean,
|
|
84
89
|
default: false,
|
|
@@ -68,6 +68,16 @@ let AlertRepository = (() => {
|
|
|
68
68
|
query.isRead = filters.isRead;
|
|
69
69
|
if (!filters.includeDeleted)
|
|
70
70
|
query.isDeleted = false;
|
|
71
|
+
if (filters.type)
|
|
72
|
+
query.type = filters.type;
|
|
73
|
+
// Date filtering
|
|
74
|
+
if (filters.startDate || filters.endDate) {
|
|
75
|
+
query.createdAt = {};
|
|
76
|
+
if (filters.startDate)
|
|
77
|
+
query.createdAt.$gte = filters.startDate;
|
|
78
|
+
if (filters.endDate)
|
|
79
|
+
query.createdAt.$lte = filters.endDate;
|
|
80
|
+
}
|
|
71
81
|
return query;
|
|
72
82
|
}
|
|
73
83
|
/**
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { IAlertDocument } from "./Alert.model";
|
|
2
2
|
import { CreateAlertData, UpdateAlertData, AlertCategory, AlertSeverity, IAlertQuery } from "./alert.types";
|
|
3
|
-
import { Source } from "../constants/Service";
|
|
4
3
|
import { AlertBuilder } from "./AlertBuilder";
|
|
5
|
-
import { IDevice } from "../entities/device/local/interfaces";
|
|
6
4
|
export declare class AlertService {
|
|
7
5
|
private readonly alertRepository;
|
|
8
6
|
constructor();
|
|
@@ -21,7 +19,6 @@ export declare class AlertService {
|
|
|
21
19
|
/**
|
|
22
20
|
* Create a device-specific alert using AlertBuilder
|
|
23
21
|
*/
|
|
24
|
-
raiseDeviceAlert(data: CreateAlertData): Promise<IAlertDocument>;
|
|
25
22
|
/**
|
|
26
23
|
* Create a hub-specific alert using AlertBuilder
|
|
27
24
|
*/
|
|
@@ -29,19 +26,15 @@ export declare class AlertService {
|
|
|
29
26
|
/**
|
|
30
27
|
* Raise alert for device going offline (OPERATIONAL only)
|
|
31
28
|
*/
|
|
32
|
-
raiseDeviceOfflineAlert(device: IDevice, source: Source, reason?: string): Promise<IAlertDocument>;
|
|
33
29
|
/**
|
|
34
30
|
* Raise alert for device coming online (OPERATIONAL only)
|
|
35
31
|
*/
|
|
36
|
-
raiseDeviceOnlineAlert(device: IDevice, source: Source, reason?: string): Promise<IAlertDocument>;
|
|
37
32
|
/**
|
|
38
33
|
* Raise alert for device battery level below threshold (READINESS + OPERATIONAL + ENERGY)
|
|
39
34
|
*/
|
|
40
|
-
raiseDeviceBatteryAlert(device: IDevice, batteryLevel: number, threshold: number, source: Source): Promise<IAlertDocument>;
|
|
41
35
|
/**
|
|
42
36
|
* Raise alert for device issue (jammed or malfunctioned) (READINESS + OPERATIONAL)
|
|
43
37
|
*/
|
|
44
|
-
raiseDeviceIssueAlert(device: IDevice, issueType: string, source: Source, reason?: string): Promise<IAlertDocument>;
|
|
45
38
|
/**
|
|
46
39
|
* Create a new alert with business logic validation
|
|
47
40
|
* Accepts either a CreateAlertData object or an AlertBuilder instance
|
|
@@ -140,18 +140,20 @@ let AlertService = (() => {
|
|
|
140
140
|
/**
|
|
141
141
|
* Create a device-specific alert using AlertBuilder
|
|
142
142
|
*/
|
|
143
|
-
async raiseDeviceAlert(data) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
143
|
+
// async raiseDeviceAlert(data: CreateAlertData): Promise<IAlertDocument> {
|
|
144
|
+
// const alertBuilder = AlertBuilder.createDeviceAlert(
|
|
145
|
+
// data.entityId || "",
|
|
146
|
+
// data.propertyId,
|
|
147
|
+
// data.zoneId
|
|
148
|
+
// )
|
|
149
|
+
// .setTitle(data.title)
|
|
150
|
+
// .setDescription(data.description);
|
|
151
|
+
// if (data.category) alertBuilder.setCategory(data.category);
|
|
152
|
+
// if (data.severity) alertBuilder.setSeverity(data.severity);
|
|
153
|
+
// if (data.type) alertBuilder.setType(data.type);
|
|
154
|
+
// if (data.createdBy) alertBuilder.setCreatedBy(data.createdBy);
|
|
155
|
+
// return await this.createAlert(alertBuilder);
|
|
156
|
+
// }
|
|
155
157
|
/**
|
|
156
158
|
* Create a hub-specific alert using AlertBuilder
|
|
157
159
|
*/
|
|
@@ -163,6 +165,8 @@ let AlertService = (() => {
|
|
|
163
165
|
alertBuilder.setCategory(data.category);
|
|
164
166
|
if (data.severity)
|
|
165
167
|
alertBuilder.setSeverity(data.severity);
|
|
168
|
+
if (data.type)
|
|
169
|
+
alertBuilder.setType(data.type);
|
|
166
170
|
if (data.createdBy)
|
|
167
171
|
alertBuilder.setCreatedBy(data.createdBy);
|
|
168
172
|
return await this.createAlert(alertBuilder);
|
|
@@ -170,67 +174,95 @@ let AlertService = (() => {
|
|
|
170
174
|
/**
|
|
171
175
|
* Raise alert for device going offline (OPERATIONAL only)
|
|
172
176
|
*/
|
|
173
|
-
async raiseDeviceOfflineAlert(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
177
|
+
// async raiseDeviceOfflineAlert(
|
|
178
|
+
// device: IDevice,
|
|
179
|
+
// source: Source,
|
|
180
|
+
// reason?: string
|
|
181
|
+
// ): Promise<IAlertDocument> {
|
|
182
|
+
// return await this.raiseDeviceAlert({
|
|
183
|
+
// entityId: device.deviceId,
|
|
184
|
+
// propertyId: device.propertyId,
|
|
185
|
+
// zoneId: device.zoneId,
|
|
186
|
+
// title: "Device Offline",
|
|
187
|
+
// description: `Device ${device.name} has gone offline. ${
|
|
188
|
+
// reason ? `Reason: ${reason}` : ""
|
|
189
|
+
// }`,
|
|
190
|
+
// category: AlertCategory.OPERATIONS,
|
|
191
|
+
// severity: AlertSeverity.HIGH,
|
|
192
|
+
// createdBy: source,
|
|
193
|
+
// entityType: EntityType.DEVICE,
|
|
194
|
+
// type: AlertType.DEVICE_OFFLINE, // Using a relevant type for device offline
|
|
195
|
+
// });
|
|
196
|
+
// }
|
|
186
197
|
/**
|
|
187
198
|
* Raise alert for device coming online (OPERATIONAL only)
|
|
188
199
|
*/
|
|
189
|
-
async raiseDeviceOnlineAlert(
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}
|
|
200
|
+
// async raiseDeviceOnlineAlert(
|
|
201
|
+
// device: IDevice,
|
|
202
|
+
// source: Source,
|
|
203
|
+
// reason?: string
|
|
204
|
+
// ): Promise<IAlertDocument> {
|
|
205
|
+
// return await this.raiseDeviceAlert({
|
|
206
|
+
// entityId: device.deviceId,
|
|
207
|
+
// propertyId: device.propertyId,
|
|
208
|
+
// zoneId: device.zoneId,
|
|
209
|
+
// title: "Device Online",
|
|
210
|
+
// description: `Device ${device.name} is now online. ${
|
|
211
|
+
// reason ? `Reason: ${reason}` : ""
|
|
212
|
+
// }`,
|
|
213
|
+
// category: AlertCategory.OPERATIONS,
|
|
214
|
+
// severity: AlertSeverity.INFO,
|
|
215
|
+
// createdBy: source,
|
|
216
|
+
// entityType: EntityType.DEVICE,
|
|
217
|
+
// type: AlertType.DEVICE_ONLINE,
|
|
218
|
+
// });
|
|
219
|
+
// }
|
|
202
220
|
/**
|
|
203
221
|
* Raise alert for device battery level below threshold (READINESS + OPERATIONAL + ENERGY)
|
|
204
222
|
*/
|
|
205
|
-
async raiseDeviceBatteryAlert(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
223
|
+
// async raiseDeviceBatteryAlert(
|
|
224
|
+
// device: IDevice,
|
|
225
|
+
// batteryLevel: number,
|
|
226
|
+
// threshold: number,
|
|
227
|
+
// source: Source
|
|
228
|
+
// ): Promise<IAlertDocument> {
|
|
229
|
+
// return await this.raiseDeviceAlert({
|
|
230
|
+
// entityId: device.deviceId,
|
|
231
|
+
// propertyId: device.propertyId,
|
|
232
|
+
// zoneId: device.zoneId,
|
|
233
|
+
// title: "Device Battery Low",
|
|
234
|
+
// description: `Device ${device.name} (${device.deviceId}) battery level is ${batteryLevel}%, which is below the property threshold of ${threshold}%.`,
|
|
235
|
+
// category: AlertCategory.ENERGY,
|
|
236
|
+
// severity: AlertSeverity.HIGH,
|
|
237
|
+
// createdBy: source,
|
|
238
|
+
// entityType: EntityType.DEVICE,
|
|
239
|
+
// type: AlertType.DEVICE_BATTERY_LOW,
|
|
240
|
+
// });
|
|
241
|
+
// }
|
|
218
242
|
/**
|
|
219
243
|
* Raise alert for device issue (jammed or malfunctioned) (READINESS + OPERATIONAL)
|
|
220
244
|
*/
|
|
221
|
-
async raiseDeviceIssueAlert(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
245
|
+
// async raiseDeviceIssueAlert(
|
|
246
|
+
// device: IDevice,
|
|
247
|
+
// issueType: string,
|
|
248
|
+
// source: Source,
|
|
249
|
+
// reason?: string
|
|
250
|
+
// ): Promise<IAlertDocument> {
|
|
251
|
+
// return await this.raiseDeviceAlert({
|
|
252
|
+
// entityId: device.deviceId,
|
|
253
|
+
// propertyId: device.propertyId,
|
|
254
|
+
// zoneId: device.zoneId,
|
|
255
|
+
// title: `Device Issue - ${issueType}`,
|
|
256
|
+
// description: `Device ${device.name} has an issue: ${issueType}. ${
|
|
257
|
+
// reason ? `Reason: ${reason}` : ""
|
|
258
|
+
// }`,
|
|
259
|
+
// category: AlertCategory.OPERATIONS,
|
|
260
|
+
// severity: AlertSeverity.HIGH,
|
|
261
|
+
// createdBy: source,
|
|
262
|
+
// entityType: EntityType.DEVICE,
|
|
263
|
+
// type: AlertType.DEVICE_ISSUE,
|
|
264
|
+
// });
|
|
265
|
+
// }
|
|
234
266
|
/**
|
|
235
267
|
* Create a new alert with business logic validation
|
|
236
268
|
* Accepts either a CreateAlertData object or an AlertBuilder instance
|
|
@@ -248,7 +280,7 @@ let AlertService = (() => {
|
|
|
248
280
|
this.validateAlertData(processedAlertData);
|
|
249
281
|
// Business logic: Set default severity if not provided
|
|
250
282
|
if (!processedAlertData.severity) {
|
|
251
|
-
processedAlertData.severity = this.determineDefaultSeverity(processedAlertData.category);
|
|
283
|
+
processedAlertData.severity = this.determineDefaultSeverity(processedAlertData.category, processedAlertData.type);
|
|
252
284
|
}
|
|
253
285
|
// Business logic: Validate snooze date is in the future
|
|
254
286
|
if (processedAlertData.snoozeUntil &&
|
|
@@ -536,6 +568,9 @@ let AlertService = (() => {
|
|
|
536
568
|
if (!data.entityType) {
|
|
537
569
|
throw new Error("Entity type is required");
|
|
538
570
|
}
|
|
571
|
+
if (!data.type) {
|
|
572
|
+
throw new Error("Alert type is required");
|
|
573
|
+
}
|
|
539
574
|
}
|
|
540
575
|
validateFilters(filters) {
|
|
541
576
|
if (filters.limit && (filters.limit < 1 || filters.limit > 100)) {
|
|
@@ -544,6 +579,12 @@ let AlertService = (() => {
|
|
|
544
579
|
if (filters.skip && filters.skip < 0) {
|
|
545
580
|
throw new Error("Skip must be non-negative");
|
|
546
581
|
}
|
|
582
|
+
// Validate date filters
|
|
583
|
+
if (filters.startDate &&
|
|
584
|
+
filters.endDate &&
|
|
585
|
+
filters.startDate > filters.endDate) {
|
|
586
|
+
throw new Error("Start date must be before or equal to end date");
|
|
587
|
+
}
|
|
547
588
|
}
|
|
548
589
|
validateUpdateData(data) {
|
|
549
590
|
if (data.title && data.title.trim().length < 3) {
|
|
@@ -558,7 +599,7 @@ let AlertService = (() => {
|
|
|
558
599
|
throw new Error("Snooze date must be in the future");
|
|
559
600
|
}
|
|
560
601
|
}
|
|
561
|
-
determineDefaultSeverity(category) {
|
|
602
|
+
determineDefaultSeverity(category, type) {
|
|
562
603
|
// Business logic: Determine default severity based on category
|
|
563
604
|
const categorySeverities = {
|
|
564
605
|
[alert_types_1.AlertCategory.OPERATIONS]: alert_types_1.AlertSeverity.HIGH,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CreateAlertData, AlertCategory, AlertSeverity, EntityType } from "./alert.types";
|
|
1
|
+
import { CreateAlertData, AlertCategory, AlertSeverity, EntityType, AlertType } from "./alert.types";
|
|
2
2
|
/**
|
|
3
3
|
* AlertBuilder - A builder pattern implementation for constructing CreateAlertData objects
|
|
4
4
|
*
|
|
@@ -52,6 +52,10 @@ export declare class AlertBuilder {
|
|
|
52
52
|
* Sets the alert severity (optional, defaults to LOW)
|
|
53
53
|
*/
|
|
54
54
|
setSeverity(severity?: AlertSeverity): this;
|
|
55
|
+
/**
|
|
56
|
+
* Sets the alert type (optional)
|
|
57
|
+
*/
|
|
58
|
+
setType(type?: AlertType): this;
|
|
55
59
|
/**
|
|
56
60
|
* Sets the user who created the alert (optional)
|
|
57
61
|
*/
|
|
@@ -97,6 +97,15 @@ class AlertBuilder {
|
|
|
97
97
|
}
|
|
98
98
|
return this;
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Sets the alert type (optional)
|
|
102
|
+
*/
|
|
103
|
+
setType(type) {
|
|
104
|
+
if (type !== undefined) {
|
|
105
|
+
this.data.type = type;
|
|
106
|
+
}
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
100
109
|
/**
|
|
101
110
|
* Sets the user who created the alert (optional)
|
|
102
111
|
*/
|
|
@@ -127,6 +136,7 @@ class AlertBuilder {
|
|
|
127
136
|
"description",
|
|
128
137
|
"entityType",
|
|
129
138
|
"entityId",
|
|
139
|
+
"type",
|
|
130
140
|
];
|
|
131
141
|
const missingFields = requiredFields.filter((field) => !this.data[field]);
|
|
132
142
|
if (missingFields.length > 0) {
|
|
@@ -11,11 +11,23 @@ export declare enum AlertSeverity {
|
|
|
11
11
|
HIGH = "HIGH",
|
|
12
12
|
CRITICAL = "CRITICAL"
|
|
13
13
|
}
|
|
14
|
+
export declare enum AlertType {
|
|
15
|
+
ACCOUNT_NEW_DEVICE = "ACCOUNT_NEW_DEVICE",
|
|
16
|
+
DEVICE_TAMPER_ATTEMPT = "DEVICE_TAMPER_ATTEMPT",
|
|
17
|
+
DOOR_LEFT_OPEN = "DOOR_LEFT_OPEN",
|
|
18
|
+
DOOR_OPEN_FREQUENT = "DOOR_OPEN_FREQUENT",
|
|
19
|
+
DOOR_OPEN_OUTSIDE_BIZ_HOURS = "DOOR_OPEN_OUTSIDE_BIZ_HOURS",
|
|
20
|
+
LOCK_ACCESS_EMERGENCY_CODE = "LOCK_ACCESS_EMERGENCY_CODE",
|
|
21
|
+
LOCK_ACCESS_MASTER_CODE = "LOCK_ACCESS_MASTER_CODE",
|
|
22
|
+
SPECIFIC_DOOR_ACCESS = "SPECIFIC_DOOR_ACCESS",
|
|
23
|
+
GUEST_LOCK_FIRST_ACCESS = "GUEST_LOCK_FIRST_ACCESS"
|
|
24
|
+
}
|
|
14
25
|
export interface AlertDocument {
|
|
15
26
|
_id: string;
|
|
16
27
|
category: AlertCategory;
|
|
17
28
|
propertyId: string;
|
|
18
29
|
zoneId: string;
|
|
30
|
+
type: AlertType;
|
|
19
31
|
title: string;
|
|
20
32
|
description: string;
|
|
21
33
|
entityId?: string;
|
|
@@ -39,6 +51,7 @@ export interface CreateAlertData {
|
|
|
39
51
|
entityId?: string;
|
|
40
52
|
entityType: EntityType;
|
|
41
53
|
severity?: AlertSeverity;
|
|
54
|
+
type?: AlertType;
|
|
42
55
|
createdBy?: string;
|
|
43
56
|
snoozeUntil?: Date;
|
|
44
57
|
}
|
|
@@ -49,6 +62,7 @@ export interface UpdateAlertData {
|
|
|
49
62
|
entityId?: string;
|
|
50
63
|
entityType?: EntityType;
|
|
51
64
|
severity?: AlertSeverity;
|
|
65
|
+
type?: AlertType;
|
|
52
66
|
isRead?: boolean;
|
|
53
67
|
isActive?: boolean;
|
|
54
68
|
snoozeUntil?: Date;
|
|
@@ -61,9 +75,12 @@ export interface IAlertQuery {
|
|
|
61
75
|
severity?: AlertSeverity;
|
|
62
76
|
entityType?: EntityType;
|
|
63
77
|
entityId?: string;
|
|
78
|
+
type?: AlertType;
|
|
64
79
|
isActive?: boolean;
|
|
65
80
|
isRead?: boolean;
|
|
66
81
|
includeDeleted?: boolean;
|
|
82
|
+
startDate?: Date;
|
|
83
|
+
endDate?: Date;
|
|
67
84
|
sort?: {
|
|
68
85
|
[key: string]: 1 | -1;
|
|
69
86
|
};
|