dt-common-device 7.6.14 → 7.7.0
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/alerts/Alert.service.d.ts +1 -0
- package/dist/alerts/Alert.service.js +5 -0
- package/dist/entities/accessGroup/AccessGroup.repository.d.ts +2 -1
- package/dist/entities/accessGroup/AccessGroup.repository.js +4 -1
- package/dist/entities/accessGroup/AccessGroup.service.d.ts +2 -1
- package/dist/entities/accessGroup/AccessGroup.service.js +4 -3
- package/dist/entities/admin/Admin.repository.d.ts +1 -1
- package/dist/entities/admin/Admin.repository.js +1 -1
- package/dist/entities/admin/Admin.service.d.ts +1 -1
- package/dist/entities/admin/Admin.service.js +10 -7
- package/dist/entities/admin/IAdmin.d.ts +4 -0
- package/dist/entities/guest/Guest.repository.d.ts +1 -1
- package/dist/entities/guest/Guest.repository.js +5 -2
- package/dist/entities/guest/Guest.service.d.ts +1 -1
- package/dist/entities/guest/Guest.service.js +4 -1
- package/dist/entities/schedules/Schedule.repository.d.ts +1 -1
- package/dist/entities/schedules/Schedule.repository.js +5 -2
- package/dist/entities/schedules/Schedule.service.d.ts +1 -1
- package/dist/entities/schedules/Schedule.service.js +4 -1
- package/dist/entities/user/User.repository.js +4 -1
- package/dist/entities/user/User.service.d.ts +1 -1
- package/dist/entities/user/User.service.js +4 -1
- package/dist/entities/zone/Zone.service.js +4 -1
- package/dist/issues/Issue.model.d.ts +3 -3
- package/dist/issues/Issue.repository.js +2 -0
- package/dist/issues/Issue.service.d.ts +4 -11
- package/dist/issues/Issue.service.js +29 -13
- package/dist/issues/issue.types.d.ts +2 -1
- package/package.json +1 -1
- package/dist/admin/Admin.repository.d.ts +0 -7
- package/dist/admin/Admin.repository.js +0 -182
- package/dist/admin/Admin.service.d.ts +0 -5
- package/dist/admin/Admin.service.js +0 -17
- package/dist/admin/index.d.ts +0 -1
- package/dist/admin/index.js +0 -17
- package/dist/audit/AuditProperties.d.ts +0 -16
- package/dist/audit/AuditProperties.js +0 -2
- package/dist/chronicle/IChronicle.interface.d.ts +0 -14
- package/dist/chronicle/IChronicle.interface.js +0 -2
- package/dist/chronicle/chronicle.service.d.ts +0 -4
- package/dist/chronicle/chronicle.service.js +0 -44
- package/dist/connection/Connection.repository.d.ts +0 -8
- package/dist/connection/Connection.repository.js +0 -92
- package/dist/connection/Connection.service.d.ts +0 -8
- package/dist/connection/Connection.service.js +0 -32
- package/dist/connection/IConnection.d.ts +0 -28
- package/dist/connection/IConnection.js +0 -16
- package/dist/connection/index.d.ts +0 -2
- package/dist/connection/index.js +0 -18
- package/dist/device/cloud/entities/CloudConnection.d.ts +0 -6
- package/dist/device/cloud/entities/CloudConnection.js +0 -6
- package/dist/device/cloud/entities/CloudDevice.d.ts +0 -16
- package/dist/device/cloud/entities/CloudDevice.js +0 -26
- package/dist/device/cloud/entities/CloudDeviceService.d.ts +0 -5
- package/dist/device/cloud/entities/CloudDeviceService.js +0 -9
- package/dist/device/cloud/entities/DeviceFactory.d.ts +0 -7
- package/dist/device/cloud/entities/DeviceFactory.js +0 -80
- package/dist/device/cloud/entities/index.d.ts +0 -3
- package/dist/device/cloud/entities/index.js +0 -19
- package/dist/device/cloud/interface.d.ts +0 -101
- package/dist/device/cloud/interface.js +0 -3
- package/dist/device/cloud/interfaces/ICloudConnection.d.ts +0 -5
- package/dist/device/cloud/interfaces/ICloudConnection.js +0 -2
- package/dist/device/cloud/interfaces/ICloudDevice.d.ts +0 -9
- package/dist/device/cloud/interfaces/ICloudDevice.js +0 -2
- package/dist/device/cloud/interfaces/ICloudDeviceService.d.ts +0 -4
- package/dist/device/cloud/interfaces/ICloudDeviceService.js +0 -2
- package/dist/device/cloud/interfaces/IConnectionService.d.ts +0 -7
- package/dist/device/cloud/interfaces/IConnectionService.js +0 -2
- package/dist/device/cloud/interfaces/IDeviceConnectionService.d.ts +0 -7
- package/dist/device/cloud/interfaces/IDeviceConnectionService.js +0 -3
- package/dist/device/cloud/interfaces/IDeviceFactory.d.ts +0 -4
- package/dist/device/cloud/interfaces/IDeviceFactory.js +0 -2
- package/dist/device/cloud/interfaces/IDeviceService.d.ts +0 -8
- package/dist/device/cloud/interfaces/IDeviceService.js +0 -2
- package/dist/device/cloud/interfaces/IDevicesService.d.ts +0 -9
- package/dist/device/cloud/interfaces/IDevicesService.js +0 -2
- package/dist/device/cloud/interfaces/IHubService.d.ts +0 -5
- package/dist/device/cloud/interfaces/IHubService.js +0 -2
- package/dist/device/cloud/interfaces/IRawDataTransformer.d.ts +0 -4
- package/dist/device/cloud/interfaces/IRawDataTransformer.js +0 -2
- package/dist/device/cloud/interfaces/IRawDevice.d.ts +0 -17
- package/dist/device/cloud/interfaces/IRawDevice.js +0 -11
- package/dist/device/cloud/interfaces/index.d.ts +0 -5
- package/dist/device/cloud/interfaces/index.js +0 -21
- package/dist/device/cloud/services/CloudDevice.service.d.ts +0 -5
- package/dist/device/cloud/services/CloudDevice.service.js +0 -9
- package/dist/device/cloud/services/Connection.service.d.ts +0 -8
- package/dist/device/cloud/services/Connection.service.js +0 -6
- package/dist/device/cloud/services/Device.service.d.ts +0 -39
- package/dist/device/cloud/services/Device.service.js +0 -9
- package/dist/device/cloud/services/DeviceCloudService.d.ts +0 -42
- package/dist/device/cloud/services/DeviceCloudService.js +0 -59
- package/dist/device/cloud/services/DeviceHub.service.d.ts +0 -3
- package/dist/device/cloud/services/DeviceHub.service.js +0 -6
- package/dist/device/cloud/services/Hub.service.d.ts +0 -25
- package/dist/device/cloud/services/Hub.service.js +0 -9
- package/dist/device/cloud/services/SmartThingsDeviceService.d.ts +0 -38
- package/dist/device/cloud/services/SmartThingsDeviceService.js +0 -52
- package/dist/device/cloud/services/index.d.ts +0 -2
- package/dist/device/cloud/services/index.js +0 -18
- package/dist/device/cloud/types.d.ts +0 -52
- package/dist/device/cloud/types.js +0 -15
- package/dist/device/index.d.ts +0 -4
- package/dist/device/index.js +0 -20
- package/dist/device/local/entities/AlertBuilder.d.ts +0 -87
- package/dist/device/local/entities/AlertBuilder.example.d.ts +0 -11
- package/dist/device/local/entities/AlertBuilder.example.js +0 -117
- package/dist/device/local/entities/AlertBuilder.js +0 -179
- package/dist/device/local/entities/IssueBuilder.d.ts +0 -109
- package/dist/device/local/entities/IssueBuilder.example.d.ts +0 -16
- package/dist/device/local/entities/IssueBuilder.example.js +0 -196
- package/dist/device/local/entities/IssueBuilder.js +0 -237
- package/dist/device/local/entities/index.d.ts +0 -2
- package/dist/device/local/entities/index.js +0 -7
- package/dist/device/local/events/EventHandler.d.ts +0 -11
- package/dist/device/local/events/EventHandler.js +0 -86
- package/dist/device/local/events/Events.d.ts +0 -54
- package/dist/device/local/events/Events.js +0 -57
- package/dist/device/local/events/index.d.ts +0 -2
- package/dist/device/local/events/index.js +0 -7
- package/dist/device/local/handler/EventHandler.d.ts +0 -7
- package/dist/device/local/handler/EventHandler.js +0 -44
- package/dist/device/local/interface.d.ts +0 -0
- package/dist/device/local/interface.js +0 -1
- package/dist/device/local/interfaces/IConnection.d.ts +0 -26
- package/dist/device/local/interfaces/IConnection.js +0 -14
- package/dist/device/local/interfaces/IDevice.d.ts +0 -68
- package/dist/device/local/interfaces/IDevice.js +0 -10
- package/dist/device/local/interfaces/IDtDevice.d.ts +0 -16
- package/dist/device/local/interfaces/IDtDevice.js +0 -2
- package/dist/device/local/interfaces/IHub.d.ts +0 -46
- package/dist/device/local/interfaces/IHub.js +0 -2
- package/dist/device/local/interfaces/IProperty.d.ts +0 -29
- package/dist/device/local/interfaces/IProperty.js +0 -2
- package/dist/device/local/interfaces/ISchedule.d.ts +0 -25
- package/dist/device/local/interfaces/ISchedule.js +0 -2
- package/dist/device/local/interfaces/index.d.ts +0 -3
- package/dist/device/local/interfaces/index.js +0 -19
- package/dist/device/local/models/Alert.model.d.ts +0 -28
- package/dist/device/local/models/Alert.model.js +0 -222
- package/dist/device/local/models/Issue.model.d.ts +0 -28
- package/dist/device/local/models/Issue.model.js +0 -260
- package/dist/device/local/repository/Alert.repository.d.ts +0 -106
- package/dist/device/local/repository/Alert.repository.js +0 -374
- package/dist/device/local/repository/Connection.repository.d.ts +0 -8
- package/dist/device/local/repository/Connection.repository.js +0 -92
- package/dist/device/local/repository/Device.repository.d.ts +0 -30
- package/dist/device/local/repository/Device.repository.js +0 -325
- package/dist/device/local/repository/Hub.repository.d.ts +0 -13
- package/dist/device/local/repository/Hub.repository.js +0 -139
- package/dist/device/local/repository/Issue.repository.d.ts +0 -113
- package/dist/device/local/repository/Issue.repository.js +0 -401
- package/dist/device/local/repository/Property.repository.d.ts +0 -8
- package/dist/device/local/repository/Property.repository.js +0 -95
- package/dist/device/local/repository/Schedule.repository.d.ts +0 -9
- package/dist/device/local/repository/Schedule.repository.js +0 -109
- package/dist/device/local/services/Alert.service.d.ts +0 -137
- package/dist/device/local/services/Alert.service.js +0 -475
- package/dist/device/local/services/AlertService.example.d.ts +0 -55
- package/dist/device/local/services/AlertService.example.js +0 -148
- package/dist/device/local/services/Connection.service.d.ts +0 -8
- package/dist/device/local/services/Connection.service.js +0 -32
- package/dist/device/local/services/Device.service.d.ts +0 -40
- package/dist/device/local/services/Device.service.js +0 -391
- package/dist/device/local/services/DeviceHub.service.d.ts +0 -11
- package/dist/device/local/services/DeviceHub.service.js +0 -40
- package/dist/device/local/services/Hub.service.d.ts +0 -12
- package/dist/device/local/services/Hub.service.js +0 -107
- package/dist/device/local/services/Issue.service.d.ts +0 -168
- package/dist/device/local/services/Issue.service.js +0 -642
- package/dist/device/local/services/IssueService.example.d.ts +0 -68
- package/dist/device/local/services/IssueService.example.js +0 -177
- package/dist/device/local/services/Property.service.d.ts +0 -8
- package/dist/device/local/services/Property.service.js +0 -36
- package/dist/device/local/services/Schedule.service.d.ts +0 -9
- package/dist/device/local/services/Schedule.service.js +0 -26
- package/dist/device/local/services/index.d.ts +0 -3
- package/dist/device/local/services/index.js +0 -19
- package/dist/pms/IPms.d.ts +0 -6
- package/dist/pms/IPms.js +0 -10
- package/dist/pms/index.d.ts +0 -1
- package/dist/pms/index.js +0 -18
- package/dist/pms/webhookQueue/examples/index.d.ts +0 -2
- package/dist/pms/webhookQueue/examples/index.js +0 -18
- package/dist/pms/webhookQueue/examples/pms-integration.d.ts +0 -65
- package/dist/pms/webhookQueue/examples/pms-integration.js +0 -254
- package/dist/pms/webhookQueue/examples/usage.d.ts +0 -7
- package/dist/pms/webhookQueue/examples/usage.js +0 -175
- package/dist/pms/webhookQueue/index.d.ts +0 -3
- package/dist/pms/webhookQueue/index.js +0 -20
- package/dist/pms/webhookQueue/interfaces/IWebhookQueue.d.ts +0 -33
- package/dist/pms/webhookQueue/interfaces/IWebhookQueue.js +0 -2
- package/dist/pms/webhookQueue/interfaces/IWebhookWorker.d.ts +0 -38
- package/dist/pms/webhookQueue/interfaces/IWebhookWorker.js +0 -2
- package/dist/pms/webhookQueue/interfaces/index.d.ts +0 -1
- package/dist/pms/webhookQueue/interfaces/index.js +0 -17
- package/dist/pms/webhookQueue/services/WebhookQueueFactory.d.ts +0 -38
- package/dist/pms/webhookQueue/services/WebhookQueueFactory.js +0 -131
- package/dist/pms/webhookQueue/services/WebhookQueueIntegration.d.ts +0 -70
- package/dist/pms/webhookQueue/services/WebhookQueueIntegration.js +0 -207
- package/dist/pms/webhookQueue/services/WebhookQueueService.d.ts +0 -45
- package/dist/pms/webhookQueue/services/WebhookQueueService.js +0 -270
- package/dist/pms/webhookQueue/services/WebhookWorker.d.ts +0 -37
- package/dist/pms/webhookQueue/services/WebhookWorker.js +0 -201
- package/dist/pms/webhookQueue/services/index.d.ts +0 -1
- package/dist/pms/webhookQueue/services/index.js +0 -17
- package/dist/pms/webhookQueue/types/index.d.ts +0 -1
- package/dist/pms/webhookQueue/types/index.js +0 -17
- package/dist/pms/webhookQueue/types/webhook.types.d.ts +0 -39
- package/dist/pms/webhookQueue/types/webhook.types.js +0 -2
- package/dist/property/IProperty.d.ts +0 -29
- package/dist/property/IProperty.js +0 -2
- package/dist/property/Property.repository.d.ts +0 -8
- package/dist/property/Property.repository.js +0 -109
- package/dist/property/Property.service.d.ts +0 -8
- package/dist/property/Property.service.js +0 -124
- package/dist/property/index.d.ts +0 -2
- package/dist/property/index.js +0 -18
- package/dist/queue/interfaces/IHttpRequestJob.d.ts +0 -9
- package/dist/queue/interfaces/IHttpRequestJob.js +0 -2
- package/dist/types/alert.types.d.ts +0 -57
- package/dist/types/alert.types.js +0 -22
- package/dist/types/config.types.d.ts +0 -19
- package/dist/types/config.types.js +0 -2
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.js +0 -19
- package/dist/types/issue.types.d.ts +0 -90
- package/dist/types/issue.types.js +0 -40
- package/dist/utils/http-utils.d.ts +0 -13
- package/dist/utils/http-utils.js +0 -117
|
@@ -48,6 +48,7 @@ export declare class AlertService {
|
|
|
48
48
|
* Get all alerts with business logic filtering
|
|
49
49
|
*/
|
|
50
50
|
queryAlerts(filters?: IAlertQuery): Promise<IAlertDocument[]>;
|
|
51
|
+
alertCount(filters: IAlertQuery): Promise<number>;
|
|
51
52
|
/**
|
|
52
53
|
* Update an alert with business logic validation
|
|
53
54
|
*/
|
|
@@ -404,6 +404,11 @@ let AlertService = (() => {
|
|
|
404
404
|
const enhancedFilters = this.applyBusinessRules(filters);
|
|
405
405
|
return await this.alertRepository.query(enhancedFilters);
|
|
406
406
|
}
|
|
407
|
+
async alertCount(filters) {
|
|
408
|
+
// Business logic: Apply business rules to filters
|
|
409
|
+
const enhancedFilters = this.applyBusinessRules(filters);
|
|
410
|
+
return await this.alertRepository.count(enhancedFilters);
|
|
411
|
+
}
|
|
407
412
|
/**
|
|
408
413
|
* Update an alert with business logic validation
|
|
409
414
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { IAccessGroup } from "./IAccessGroup";
|
|
1
2
|
export declare class AccessGroupRepository {
|
|
2
3
|
private readonly postgres;
|
|
3
4
|
constructor();
|
|
4
|
-
getAccessGroup(accessGroupId: string): Promise<
|
|
5
|
+
getAccessGroup(accessGroupId: string): Promise<IAccessGroup | null>;
|
|
5
6
|
}
|
|
@@ -56,7 +56,10 @@ let AccessGroupRepository = (() => {
|
|
|
56
56
|
WHERE "id" = $1
|
|
57
57
|
`;
|
|
58
58
|
const result = await this.postgres.query(query, [accessGroupId]);
|
|
59
|
-
|
|
59
|
+
if (result.rows.length > 0) {
|
|
60
|
+
return result.rows[0];
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
60
63
|
}
|
|
61
64
|
};
|
|
62
65
|
__setFunctionName(_classThis, "AccessGroupRepository");
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { IAccessGroup } from "./IAccessGroup";
|
|
1
2
|
export declare class AccessGroupService {
|
|
2
3
|
private readonly accessGroupRepository;
|
|
3
4
|
constructor();
|
|
4
|
-
getAccessGroup(accessGroupId: string): Promise<
|
|
5
|
+
getAccessGroup(accessGroupId: string): Promise<IAccessGroup | null>;
|
|
5
6
|
}
|
|
@@ -87,7 +87,10 @@ let AccessGroupService = (() => {
|
|
|
87
87
|
if (!accessGroupId) {
|
|
88
88
|
throw new Error("Access Group ID is required");
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
const accessGroup = await this.accessGroupRepository.getAccessGroup(accessGroupId);
|
|
91
|
+
if (!accessGroup)
|
|
92
|
+
return null;
|
|
93
|
+
return accessGroup;
|
|
91
94
|
}
|
|
92
95
|
};
|
|
93
96
|
__setFunctionName(_classThis, "AccessGroupService");
|
|
@@ -101,5 +104,3 @@ let AccessGroupService = (() => {
|
|
|
101
104
|
return AccessGroupService = _classThis;
|
|
102
105
|
})();
|
|
103
106
|
exports.AccessGroupService = AccessGroupService;
|
|
104
|
-
// Accessgroup.getAccessGroup(accessGroupId)
|
|
105
|
-
// GetAccessGroup()
|
|
@@ -6,7 +6,7 @@ export declare class AdminRepository {
|
|
|
6
6
|
getZonesByAccessGroupIds(accessGroupIds: string[]): Promise<any[]>;
|
|
7
7
|
getZonesByAccessGroups(accessGroupIds: string[]): Promise<any[]>;
|
|
8
8
|
getAccessGroup(accessGroupId: string): Promise<IAccessGroup | null>;
|
|
9
|
-
getZoneAccessGroupByZoneId(zoneId: string): Promise<IZoneAccessGroup | null>;
|
|
9
|
+
getZoneAccessGroupByZoneId(zoneId: string): Promise<IZoneAccessGroup[] | null>;
|
|
10
10
|
getZone(zoneId: string): Promise<IZone | null>;
|
|
11
11
|
getUser(userId: string): Promise<IUser | null>;
|
|
12
12
|
}
|
|
@@ -6,7 +6,7 @@ export declare class AdminService {
|
|
|
6
6
|
getZonesByAccessGroupIds(accessGroupIds: string[]): Promise<any[] | undefined>;
|
|
7
7
|
getZonesByAccessGroups(accessGroupIds: string[]): Promise<any[] | undefined>;
|
|
8
8
|
getAccessGroup(accessGroupId: string): Promise<IAccessGroup | null>;
|
|
9
|
-
getAccessGroupByZoneId(zoneId: string): Promise<IAccessGroup |
|
|
9
|
+
getAccessGroupByZoneId(zoneId: string): Promise<IAccessGroup[] | []>;
|
|
10
10
|
getZone(zoneId: string): Promise<IZone | null>;
|
|
11
11
|
getUser(userId: string): Promise<IUser | null>;
|
|
12
12
|
}
|
|
@@ -114,13 +114,16 @@ let AdminService = (() => {
|
|
|
114
114
|
if (!zoneId) {
|
|
115
115
|
throw new Error("Zone ID is required");
|
|
116
116
|
}
|
|
117
|
-
const
|
|
118
|
-
if (!
|
|
119
|
-
return
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
117
|
+
const zoneAccessGroups = await this.adminRepository.getZoneAccessGroupByZoneId(zoneId);
|
|
118
|
+
if (!zoneAccessGroups?.length)
|
|
119
|
+
return [];
|
|
120
|
+
const accessGroups = [];
|
|
121
|
+
for (const zoneAccessGroup of zoneAccessGroups) {
|
|
122
|
+
const accessGroup = await this.adminRepository.getAccessGroup(zoneAccessGroup.collectionId);
|
|
123
|
+
if (accessGroup)
|
|
124
|
+
accessGroups.push(accessGroup);
|
|
125
|
+
}
|
|
126
|
+
return accessGroups;
|
|
124
127
|
}
|
|
125
128
|
async getZone(zoneId) {
|
|
126
129
|
if (!zoneId) {
|
|
@@ -52,8 +52,11 @@ let GuestRepository = (() => {
|
|
|
52
52
|
}
|
|
53
53
|
async getGuest(guestId) {
|
|
54
54
|
try {
|
|
55
|
-
const guest = await this.pmsPostgres.query(`SELECT * FROM
|
|
56
|
-
|
|
55
|
+
const guest = await this.pmsPostgres.query(`SELECT * FROM dt_guest WHERE "id" = $1`, [guestId]);
|
|
56
|
+
if (guest.rows.length > 0) {
|
|
57
|
+
return guest.rows[0];
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
57
60
|
}
|
|
58
61
|
catch (error) {
|
|
59
62
|
console.error("Error in getGuest:", error);
|
|
@@ -88,7 +88,10 @@ let GuestService = (() => {
|
|
|
88
88
|
if (!guestId) {
|
|
89
89
|
throw new Error("Guest ID is required");
|
|
90
90
|
}
|
|
91
|
-
|
|
91
|
+
const guest = await this.guestRepository.getGuest(guestId);
|
|
92
|
+
if (!guest)
|
|
93
|
+
return null;
|
|
94
|
+
return guest;
|
|
92
95
|
}
|
|
93
96
|
};
|
|
94
97
|
__setFunctionName(_classThis, "GuestService");
|
|
@@ -52,8 +52,11 @@ let ScheduleRepository = (() => {
|
|
|
52
52
|
}
|
|
53
53
|
async getSchedule(scheduleId) {
|
|
54
54
|
try {
|
|
55
|
-
const schedule = await this.pmsPostgres.query(`SELECT * FROM
|
|
56
|
-
|
|
55
|
+
const schedule = await this.pmsPostgres.query(`SELECT * FROM dt_schedule WHERE "id" = $1`, [scheduleId]);
|
|
56
|
+
if (schedule.rows.length > 0) {
|
|
57
|
+
return schedule.rows[0];
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
57
60
|
}
|
|
58
61
|
catch (error) {
|
|
59
62
|
console.error("Error in getSchedule:", error);
|
|
@@ -88,7 +88,10 @@ let ScheduleService = (() => {
|
|
|
88
88
|
if (!scheduleId) {
|
|
89
89
|
throw new Error("Schedule ID is required");
|
|
90
90
|
}
|
|
91
|
-
|
|
91
|
+
const schedule = await this.scheduleRepository.getSchedule(scheduleId);
|
|
92
|
+
if (!schedule)
|
|
93
|
+
return null;
|
|
94
|
+
return schedule;
|
|
92
95
|
}
|
|
93
96
|
};
|
|
94
97
|
__setFunctionName(_classThis, "ScheduleService");
|
|
@@ -52,7 +52,10 @@ let UserRepository = (() => {
|
|
|
52
52
|
}
|
|
53
53
|
async getUser(userId) {
|
|
54
54
|
const user = await this.postgres.query(`SELECT * FROM dt_users WHERE "id" = $1`, [userId]);
|
|
55
|
-
|
|
55
|
+
if (user.rows.length > 0) {
|
|
56
|
+
return user.rows[0];
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
56
59
|
}
|
|
57
60
|
};
|
|
58
61
|
__setFunctionName(_classThis, "UserRepository");
|
|
@@ -87,7 +87,10 @@ let UserService = (() => {
|
|
|
87
87
|
if (!userId) {
|
|
88
88
|
throw new Error("User ID is required");
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
const user = await this.userRepository.getUser(userId);
|
|
91
|
+
if (!user)
|
|
92
|
+
return null;
|
|
93
|
+
return user;
|
|
91
94
|
}
|
|
92
95
|
};
|
|
93
96
|
__setFunctionName(_classThis, "UserService");
|
|
@@ -88,7 +88,10 @@ let ZoneService = (() => {
|
|
|
88
88
|
if (!zoneId) {
|
|
89
89
|
throw new Error("Zone ID is required");
|
|
90
90
|
}
|
|
91
|
-
|
|
91
|
+
const zone = await this.zoneRepository.getZone(zoneId);
|
|
92
|
+
if (!zone)
|
|
93
|
+
return null;
|
|
94
|
+
return zone;
|
|
92
95
|
}
|
|
93
96
|
};
|
|
94
97
|
__setFunctionName(_classThis, "ZoneService");
|
|
@@ -14,9 +14,9 @@ interface IIssueModel extends Model<IIssueDocument, {}, IIssueMethods> {
|
|
|
14
14
|
findOverdue(includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
15
15
|
findUpcoming(days?: number, includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
16
16
|
}
|
|
17
|
-
declare const IssueSchema: mongoose.Schema<IIssueDocument, IIssueModel, IIssueMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IIssueDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IIssueDocument>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & Omit<mongoose.FlatRecord<IIssueDocument> &
|
|
18
|
-
_id:
|
|
19
|
-
}
|
|
17
|
+
declare const IssueSchema: mongoose.Schema<IIssueDocument, IIssueModel, IIssueMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IIssueDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IIssueDocument>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & Omit<mongoose.FlatRecord<IIssueDocument> & {
|
|
18
|
+
_id: mongoose.Types.ObjectId;
|
|
19
|
+
} & {
|
|
20
20
|
__v: number;
|
|
21
21
|
}, keyof IIssueMethods> & IIssueMethods>;
|
|
22
22
|
export declare const IssueModel: IIssueModel;
|
|
@@ -50,6 +50,8 @@ let IssueRepository = (() => {
|
|
|
50
50
|
var IssueRepository = _classThis = class {
|
|
51
51
|
buildQuery(filters) {
|
|
52
52
|
const query = {};
|
|
53
|
+
if (filters.id)
|
|
54
|
+
query._id = filters.id;
|
|
53
55
|
if (filters.propertyId)
|
|
54
56
|
query.propertyId = filters.propertyId;
|
|
55
57
|
if (filters.zoneId)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IIssueDocument } from "./Issue.model";
|
|
2
|
-
import { CreateIssueData, UpdateIssueData, AddCommentData, IssuePriority, IssuesCategory, EntityType, EntitySubType, IIssueQuery
|
|
2
|
+
import { CreateIssueData, UpdateIssueData, AddCommentData, IssuePriority, IssuesCategory, EntityType, EntitySubType, IIssueQuery } from "./issue.types";
|
|
3
3
|
import { IssueBuilder } from "./IssueBuilder";
|
|
4
4
|
import { Source } from "../constants/Service";
|
|
5
5
|
import { IDevice } from "../entities/device/local/interfaces";
|
|
@@ -30,15 +30,6 @@ export declare class IssueService {
|
|
|
30
30
|
* Create a user-specific issue using IssueBuilder
|
|
31
31
|
*/
|
|
32
32
|
createUserIssue(data: CreateIssueData): Promise<IIssueDocument | null>;
|
|
33
|
-
createCloudAccountAuthorizationIssue(data: {
|
|
34
|
-
propertyId: string;
|
|
35
|
-
entityId: string;
|
|
36
|
-
entityType: EntityType;
|
|
37
|
-
title: string;
|
|
38
|
-
description: string;
|
|
39
|
-
createdBy: string;
|
|
40
|
-
type: IssueType;
|
|
41
|
-
}): Promise<IIssueDocument | null>;
|
|
42
33
|
/**
|
|
43
34
|
* Create issue for device going offline longer than baseline
|
|
44
35
|
*/
|
|
@@ -54,9 +45,10 @@ export declare class IssueService {
|
|
|
54
45
|
}, propertyId: string, source: Source): Promise<IIssueDocument | null>;
|
|
55
46
|
createAccountUnauthorizedIssue(account: {
|
|
56
47
|
accountId: string;
|
|
57
|
-
accountType:
|
|
48
|
+
accountType: EntityType;
|
|
58
49
|
propertyId: string;
|
|
59
50
|
name: string;
|
|
51
|
+
accountSubType: EntitySubType;
|
|
60
52
|
}, source: Source, reason?: string): Promise<IIssueDocument | null>;
|
|
61
53
|
/**
|
|
62
54
|
* Create issue for device malfunction (jammed or not accepting codes) (READINESS + OPERATIONAL)
|
|
@@ -84,6 +76,7 @@ export declare class IssueService {
|
|
|
84
76
|
* Get all issues with business logic filtering
|
|
85
77
|
*/
|
|
86
78
|
query(filters: IIssueQuery): Promise<IIssueDocument[]>;
|
|
79
|
+
issueCount(filters: IIssueQuery): Promise<number>;
|
|
87
80
|
/**
|
|
88
81
|
* Update an issue with business logic validation
|
|
89
82
|
*/
|
|
@@ -226,13 +226,6 @@ let IssueService = (() => {
|
|
|
226
226
|
issueBuilder.setZoneId(data.zoneId);
|
|
227
227
|
return await this.createIssue(issueBuilder);
|
|
228
228
|
}
|
|
229
|
-
async createCloudAccountAuthorizationIssue(data) {
|
|
230
|
-
const issueBuilder = IssueBuilder_1.IssueBuilder.createCloudAccountAuthorizationIssue(data.propertyId, data.entityId, data.entityType, data.type)
|
|
231
|
-
.setTitle(data.title)
|
|
232
|
-
.setDescription(data.description)
|
|
233
|
-
.setCreatedBy(data.createdBy);
|
|
234
|
-
return await this.createIssue(issueBuilder);
|
|
235
|
-
}
|
|
236
229
|
/**
|
|
237
230
|
* Create issue for device going offline longer than baseline
|
|
238
231
|
*/
|
|
@@ -290,8 +283,8 @@ let IssueService = (() => {
|
|
|
290
283
|
async createAccountUnauthorizedIssue(account, source, reason) {
|
|
291
284
|
return await this.createIssue({
|
|
292
285
|
entityId: account.accountId,
|
|
293
|
-
entityType:
|
|
294
|
-
entitySubType: account
|
|
286
|
+
entityType: account?.accountType,
|
|
287
|
+
entitySubType: account?.accountSubType,
|
|
295
288
|
propertyId: account.propertyId,
|
|
296
289
|
title: "Account re-authorization required",
|
|
297
290
|
description: `${account.name}'s authorization has expired. Please re-authorize the account. ${reason ? `Reason: ${reason}.` : ""}`,
|
|
@@ -485,6 +478,11 @@ let IssueService = (() => {
|
|
|
485
478
|
const enhancedFilters = this.applyBusinessRules(filters);
|
|
486
479
|
return await this.issueRepository.query(enhancedFilters);
|
|
487
480
|
}
|
|
481
|
+
async issueCount(filters) {
|
|
482
|
+
// Business logic: Apply business rules to filters
|
|
483
|
+
const enhancedFilters = this.applyBusinessRules(filters);
|
|
484
|
+
return await this.issueRepository.count(enhancedFilters);
|
|
485
|
+
}
|
|
488
486
|
/**
|
|
489
487
|
* Update an issue with business logic validation
|
|
490
488
|
*/
|
|
@@ -706,37 +704,45 @@ let IssueService = (() => {
|
|
|
706
704
|
updatedBy,
|
|
707
705
|
updatedAt: new Date(),
|
|
708
706
|
};
|
|
707
|
+
let auditType = "";
|
|
709
708
|
switch (action) {
|
|
710
709
|
case "in_progress":
|
|
711
710
|
newStatus = issue_types_1.IssueStatus.IN_PROGRESS;
|
|
711
|
+
auditType = constants_1.DT_EVENT_TYPES.ISSUE.IN_PROGRESS.SUCCESS;
|
|
712
712
|
break;
|
|
713
713
|
case "resolve":
|
|
714
714
|
newStatus = issue_types_1.IssueStatus.RESOLVED;
|
|
715
715
|
updateData.resolvedAt = new Date();
|
|
716
|
+
auditType = constants_1.DT_EVENT_TYPES.ISSUE.RESOLVE.SUCCESS;
|
|
716
717
|
break;
|
|
717
718
|
case "close":
|
|
718
719
|
newStatus = issue_types_1.IssueStatus.CLOSED;
|
|
720
|
+
auditType = constants_1.DT_EVENT_TYPES.ISSUE.CLOSE.SUCCESS;
|
|
719
721
|
break;
|
|
720
722
|
case "cancel":
|
|
721
723
|
newStatus = issue_types_1.IssueStatus.CANCELLED;
|
|
724
|
+
auditType = constants_1.DT_EVENT_TYPES.ISSUE.CANCEL.SUCCESS;
|
|
722
725
|
break;
|
|
723
726
|
case "on_hold":
|
|
724
727
|
newStatus = issue_types_1.IssueStatus.ON_HOLD;
|
|
728
|
+
auditType = constants_1.DT_EVENT_TYPES.ISSUE.ON_HOLD.SUCCESS;
|
|
725
729
|
break;
|
|
726
730
|
case "ignore":
|
|
727
731
|
newStatus = issue_types_1.IssueStatus.IGNORED;
|
|
732
|
+
auditType = constants_1.DT_EVENT_TYPES.ISSUE.IGNORE.SUCCESS;
|
|
728
733
|
break;
|
|
729
734
|
default:
|
|
730
735
|
throw new Error("Invalid action. Must be 'cancel', 'close', or 'resolve'");
|
|
731
736
|
}
|
|
732
737
|
updateData.status = newStatus;
|
|
733
738
|
// Update the issue
|
|
734
|
-
const updatedIssue = await this.updateIssue(issue.
|
|
739
|
+
const updatedIssue = await this.updateIssue(issue.id, updateData);
|
|
735
740
|
if (updatedIssue) {
|
|
736
741
|
// Log the action for audit purposes
|
|
737
|
-
console.log(`Issue ${issue.
|
|
742
|
+
console.log(`Issue ${issue.id} has been ${action}ed by ${updatedBy}`);
|
|
743
|
+
await dt_pub_sub_1.eventDispatcher.publishEvent(auditType, updatedIssue, "dt-common-device");
|
|
738
744
|
await (0, audit_1.pushAudit)({
|
|
739
|
-
auditType:
|
|
745
|
+
auditType: auditType,
|
|
740
746
|
auditData: {
|
|
741
747
|
resource: audit_1.Resource.ISSUE,
|
|
742
748
|
source: Service_1.Source.USER,
|
|
@@ -764,6 +770,8 @@ let IssueService = (() => {
|
|
|
764
770
|
error: error,
|
|
765
771
|
updatedBy,
|
|
766
772
|
updatedAt: new Date(),
|
|
773
|
+
actionPayload: query,
|
|
774
|
+
action,
|
|
767
775
|
},
|
|
768
776
|
});
|
|
769
777
|
throw error;
|
|
@@ -896,12 +904,15 @@ let IssueService = (() => {
|
|
|
896
904
|
const validTransitions = {
|
|
897
905
|
[issue_types_1.IssueStatus.PENDING]: [
|
|
898
906
|
issue_types_1.IssueStatus.IN_PROGRESS,
|
|
907
|
+
issue_types_1.IssueStatus.RESOLVED,
|
|
908
|
+
issue_types_1.IssueStatus.CLOSED,
|
|
899
909
|
issue_types_1.IssueStatus.CANCELLED,
|
|
900
910
|
issue_types_1.IssueStatus.ON_HOLD,
|
|
901
911
|
issue_types_1.IssueStatus.IGNORED,
|
|
902
912
|
],
|
|
903
913
|
[issue_types_1.IssueStatus.IN_PROGRESS]: [
|
|
904
914
|
issue_types_1.IssueStatus.RESOLVED,
|
|
915
|
+
issue_types_1.IssueStatus.CLOSED,
|
|
905
916
|
issue_types_1.IssueStatus.CANCELLED,
|
|
906
917
|
issue_types_1.IssueStatus.ON_HOLD,
|
|
907
918
|
issue_types_1.IssueStatus.IGNORED,
|
|
@@ -939,7 +950,12 @@ let IssueService = (() => {
|
|
|
939
950
|
// Always exclude cancelled, resolved, and closed issues unless explicitly requested
|
|
940
951
|
if (!enhancedFilters.status) {
|
|
941
952
|
enhancedFilters.status = {
|
|
942
|
-
$nin: [
|
|
953
|
+
$nin: [
|
|
954
|
+
issue_types_1.IssueStatus.CANCELLED,
|
|
955
|
+
issue_types_1.IssueStatus.RESOLVED,
|
|
956
|
+
issue_types_1.IssueStatus.CLOSED,
|
|
957
|
+
issue_types_1.IssueStatus.IGNORED,
|
|
958
|
+
],
|
|
943
959
|
};
|
|
944
960
|
}
|
|
945
961
|
return enhancedFilters;
|
|
@@ -57,7 +57,7 @@ export declare enum IssueType {
|
|
|
57
57
|
DEVICE_MALFUNCTION = "DEVICE_MALFUNCTION"
|
|
58
58
|
}
|
|
59
59
|
export interface IssueDocument {
|
|
60
|
-
|
|
60
|
+
id: string;
|
|
61
61
|
category: IssuesCategory;
|
|
62
62
|
propertyId: string;
|
|
63
63
|
zoneId?: string;
|
|
@@ -118,6 +118,7 @@ export interface AddCommentData {
|
|
|
118
118
|
content: string;
|
|
119
119
|
}
|
|
120
120
|
export interface IIssueQuery {
|
|
121
|
+
id?: string;
|
|
121
122
|
propertyId?: string;
|
|
122
123
|
zoneId?: string;
|
|
123
124
|
zoneName?: string;
|
package/package.json
CHANGED