dt-common-device 13.1.2 → 13.1.4
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.service.d.ts +5 -0
- package/dist/admin/index.d.ts +1 -0
- package/dist/alerts/AlertBuilder.example.d.ts +11 -0
- package/dist/alerts/AlertService.example.d.ts +55 -0
- package/dist/audit/AuditProperties.d.ts +16 -0
- package/dist/chronicle/Cronicle.service.d.ts +9 -0
- package/dist/chronicle/IChronicle.interface.d.ts +14 -0
- package/dist/chronicle/ICronicle.interface.d.ts +15 -0
- package/dist/chronicle/chronicle.service.d.ts +4 -0
- package/dist/chronicle/index.d.ts +2 -0
- package/dist/connection/Connection.repository.d.ts +8 -0
- package/dist/connection/Connection.service.d.ts +8 -0
- package/dist/connection/IConnection.d.ts +28 -0
- package/dist/connection/index.d.ts +2 -0
- package/dist/copilotQueue/examples/CopilotQueue.example.d.ts +37 -0
- package/dist/copilotQueue/examples/index.d.ts +1 -0
- package/dist/cronicle/Cronicle.service.js +0 -2
- package/dist/device/cloud/entities/CloudConnection.d.ts +6 -0
- package/dist/device/cloud/entities/CloudDevice.d.ts +16 -0
- package/dist/device/cloud/entities/CloudDeviceService.d.ts +5 -0
- package/dist/device/cloud/entities/DeviceFactory.d.ts +7 -0
- package/dist/device/cloud/entities/index.d.ts +3 -0
- package/dist/device/cloud/interface.d.ts +101 -0
- package/dist/device/cloud/interfaces/ICloudConnection.d.ts +5 -0
- package/dist/device/cloud/interfaces/ICloudDevice.d.ts +9 -0
- package/dist/device/cloud/interfaces/ICloudDeviceService.d.ts +4 -0
- package/dist/device/cloud/interfaces/IConnectionService.d.ts +7 -0
- package/dist/device/cloud/interfaces/IDeviceConnectionService.d.ts +7 -0
- package/dist/device/cloud/interfaces/IDeviceFactory.d.ts +4 -0
- package/dist/device/cloud/interfaces/IDeviceService.d.ts +8 -0
- package/dist/device/cloud/interfaces/IDevicesService.d.ts +9 -0
- package/dist/device/cloud/interfaces/IHubService.d.ts +5 -0
- package/dist/device/cloud/interfaces/IRawDataTransformer.d.ts +4 -0
- package/dist/device/cloud/interfaces/IRawDevice.d.ts +17 -0
- package/dist/device/cloud/interfaces/index.d.ts +5 -0
- package/dist/device/cloud/services/CloudDevice.service.d.ts +5 -0
- package/dist/device/cloud/services/Connection.service.d.ts +8 -0
- package/dist/device/cloud/services/Device.service.d.ts +39 -0
- package/dist/device/cloud/services/DeviceCloudService.d.ts +42 -0
- package/dist/device/cloud/services/DeviceHub.service.d.ts +3 -0
- package/dist/device/cloud/services/Hub.service.d.ts +25 -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/types.d.ts +52 -0
- package/dist/device/cloud/types.js +15 -0
- package/dist/device/index.d.ts +4 -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/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/events/EventHandler.d.ts +11 -0
- package/dist/device/local/events/Events.d.ts +54 -0
- package/dist/device/local/events/index.d.ts +2 -0
- package/dist/device/local/handler/EventHandler.d.ts +7 -0
- package/dist/device/local/interface.d.ts +0 -0
- package/dist/device/local/interfaces/IConnection.d.ts +26 -0
- package/dist/device/local/interfaces/IDevice.d.ts +68 -0
- package/dist/device/local/interfaces/IDtDevice.d.ts +16 -0
- package/dist/device/local/interfaces/IHub.d.ts +46 -0
- package/dist/device/local/interfaces/IProperty.d.ts +29 -0
- package/dist/device/local/interfaces/ISchedule.d.ts +25 -0
- package/dist/device/local/interfaces/index.d.ts +3 -0
- package/dist/device/local/models/Alert.model.d.ts +28 -0
- package/dist/device/local/models/Issue.model.d.ts +28 -0
- package/dist/device/local/repository/Alert.repository.d.ts +106 -0
- package/dist/device/local/repository/Connection.repository.d.ts +8 -0
- package/dist/device/local/repository/Device.repository.d.ts +30 -0
- package/dist/device/local/repository/Hub.repository.d.ts +13 -0
- package/dist/device/local/repository/Issue.repository.d.ts +113 -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/AlertService.example.d.ts +55 -0
- package/dist/device/local/services/Connection.service.d.ts +8 -0
- package/dist/device/local/services/Device.service.d.ts +40 -0
- package/dist/device/local/services/DeviceHub.service.d.ts +11 -0
- package/dist/device/local/services/Hub.service.d.ts +12 -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/entities/accessGroup/AccessGroup.repository.d.ts +5 -0
- package/dist/entities/accessGroup/AccessGroup.service.d.ts +5 -0
- package/dist/entities/accessGroup/IAccessGroup.d.ts +14 -0
- package/dist/entities/accessGroup/index.d.ts +2 -0
- package/dist/entities/admin/Admin.repository.d.ts +1 -0
- package/dist/entities/admin/Admin.repository.js +9 -0
- package/dist/entities/admin/Admin.service.d.ts +1 -0
- package/dist/entities/admin/Admin.service.js +3 -0
- package/dist/entities/device/local/repository/DeviceProfile.repository.d.ts +5 -0
- package/dist/entities/guest/Guest.repository.d.ts +6 -0
- package/dist/entities/guest/Guest.service.d.ts +6 -0
- package/dist/entities/guest/IGuest.d.ts +12 -0
- package/dist/entities/guest/index.d.ts +2 -0
- package/dist/entities/schedules/ISchedule.d.ts +14 -0
- package/dist/entities/schedules/Schedule.repository.d.ts +6 -0
- package/dist/entities/schedules/Schedule.repository.js +74 -0
- package/dist/entities/schedules/Schedule.service.d.ts +6 -0
- package/dist/entities/schedules/Schedule.service.js +104 -0
- package/dist/entities/schedules/index.d.ts +2 -0
- package/dist/entities/user/IUser.d.ts +15 -0
- package/dist/entities/user/IUser.js +2 -0
- package/dist/entities/user/User.repository.d.ts +5 -0
- package/dist/entities/user/User.repository.js +68 -0
- package/dist/entities/user/User.service.d.ts +6 -0
- package/dist/entities/user/User.service.js +103 -0
- package/dist/entities/zone/IZone.d.ts +10 -0
- package/dist/entities/zone/IZone.js +2 -0
- package/dist/entities/zone/Zone.repository.d.ts +6 -0
- package/dist/entities/zone/Zone.repository.js +77 -0
- package/dist/entities/zone/Zone.service.d.ts +6 -0
- package/dist/entities/zone/Zone.service.js +104 -0
- package/dist/entities/zone/index.d.ts +2 -0
- package/dist/issues/IssueBuilder.example.d.ts +16 -0
- package/dist/issues/IssueBuilder.example.js +196 -0
- package/dist/issues/IssueService.example.d.ts +68 -0
- package/dist/issues/IssueService.example.js +292 -0
- package/dist/pms/IPms.d.ts +6 -0
- package/dist/pms/index.d.ts +1 -0
- package/dist/pms/webhookQueue/examples/index.d.ts +2 -0
- package/dist/pms/webhookQueue/examples/pms-integration.d.ts +65 -0
- package/dist/pms/webhookQueue/examples/pms-integration.js +254 -0
- package/dist/pms/webhookQueue/examples/usage.d.ts +7 -0
- package/dist/pms/webhookQueue/examples/usage.js +175 -0
- package/dist/pms/webhookQueue/index.d.ts +3 -0
- package/dist/pms/webhookQueue/interfaces/IWebhookQueue.d.ts +33 -0
- package/dist/pms/webhookQueue/interfaces/IWebhookQueue.js +2 -0
- package/dist/pms/webhookQueue/interfaces/IWebhookWorker.d.ts +38 -0
- package/dist/pms/webhookQueue/interfaces/IWebhookWorker.js +2 -0
- package/dist/pms/webhookQueue/interfaces/index.d.ts +1 -0
- package/dist/pms/webhookQueue/services/WebhookQueueFactory.d.ts +38 -0
- package/dist/pms/webhookQueue/services/WebhookQueueFactory.js +131 -0
- package/dist/pms/webhookQueue/services/WebhookQueueIntegration.d.ts +70 -0
- package/dist/pms/webhookQueue/services/WebhookQueueIntegration.js +207 -0
- package/dist/pms/webhookQueue/services/WebhookQueueService.d.ts +45 -0
- package/dist/pms/webhookQueue/services/WebhookQueueService.js +270 -0
- package/dist/pms/webhookQueue/services/WebhookWorker.d.ts +37 -0
- package/dist/pms/webhookQueue/services/WebhookWorker.js +201 -0
- package/dist/pms/webhookQueue/services/index.d.ts +1 -0
- package/dist/pms/webhookQueue/types/index.d.ts +1 -0
- package/dist/pms/webhookQueue/types/webhook.types.d.ts +39 -0
- package/dist/pms/webhookQueue/types/webhook.types.js +2 -0
- package/dist/property/IProperty.d.ts +29 -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/queue/interfaces/IHttpRequestJob.d.ts +9 -0
- package/dist/types/alert.types.d.ts +57 -0
- package/dist/types/config.types.d.ts +19 -0
- package/dist/types/index.d.ts +3 -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/package.json +1 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { IssueService } from "./Issue.service";
|
|
2
|
+
/**
|
|
3
|
+
* Example usage of the updated IssueService with IssueBuilder integration
|
|
4
|
+
* This file demonstrates various ways to use the IssueService with the new IssueBuilder
|
|
5
|
+
*/
|
|
6
|
+
export declare class IssueServiceExample {
|
|
7
|
+
private readonly issueService;
|
|
8
|
+
constructor(issueService: IssueService);
|
|
9
|
+
/**
|
|
10
|
+
* Example 1: Using the updated createIssue method with IssueBuilder
|
|
11
|
+
*/
|
|
12
|
+
createIssueWithBuilder(): Promise<import("../../../types/issue.types").IssueDocument>;
|
|
13
|
+
/**
|
|
14
|
+
* Example 2: Using convenience methods for specific issue types
|
|
15
|
+
*/
|
|
16
|
+
createSpecificIssues(): Promise<{
|
|
17
|
+
readinessIssue: import("../../../types/issue.types").IssueDocument;
|
|
18
|
+
operationsIssue: import("../../../types/issue.types").IssueDocument;
|
|
19
|
+
securityIssue: import("../../../types/issue.types").IssueDocument;
|
|
20
|
+
energyIssue: import("../../../types/issue.types").IssueDocument;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Example 3: Using device-specific issue methods
|
|
24
|
+
*/
|
|
25
|
+
createDeviceIssues(): Promise<{
|
|
26
|
+
deviceIssue1: import("../../../types/issue.types").IssueDocument;
|
|
27
|
+
deviceIssue2: import("../../../types/issue.types").IssueDocument;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Example 4: Using hub-specific issue methods
|
|
31
|
+
*/
|
|
32
|
+
createHubIssues(): Promise<{
|
|
33
|
+
hubIssue1: import("../../../types/issue.types").IssueDocument;
|
|
34
|
+
hubIssue2: import("../../../types/issue.types").IssueDocument;
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Example 5: Using user-specific issue methods
|
|
38
|
+
*/
|
|
39
|
+
createUserIssues(): Promise<{
|
|
40
|
+
userIssue: import("../../../types/issue.types").IssueDocument;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Example 6: Using maintenance and urgent issue methods
|
|
44
|
+
*/
|
|
45
|
+
createMaintenanceAndUrgentIssues(): Promise<{
|
|
46
|
+
maintenanceIssue: import("../../../types/issue.types").IssueDocument;
|
|
47
|
+
urgentIssue: import("../../../types/issue.types").IssueDocument;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Example 7: Using static factory methods with IssueBuilder
|
|
51
|
+
*/
|
|
52
|
+
createIssuesWithStaticMethods(): Promise<{
|
|
53
|
+
issue1: import("../../../types/issue.types").IssueDocument;
|
|
54
|
+
issue2: import("../../../types/issue.types").IssueDocument;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Example 8: Creating multiple issues efficiently
|
|
58
|
+
*/
|
|
59
|
+
createMultipleIssues(): Promise<import("../../../types/issue.types").IssueDocument[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Example 9: Creating issue with due date calculation
|
|
62
|
+
*/
|
|
63
|
+
createIssueWithDueDate(): Promise<import("../../../types/issue.types").IssueDocument>;
|
|
64
|
+
/**
|
|
65
|
+
* Example 10: Backward compatibility - still works with CreateIssueData
|
|
66
|
+
*/
|
|
67
|
+
createIssueWithLegacyData(): Promise<import("../../../types/issue.types").IssueDocument>;
|
|
68
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IssueServiceExample = void 0;
|
|
4
|
+
const IssueBuilder_1 = require("../entities/IssueBuilder");
|
|
5
|
+
const issue_types_1 = require("../../../types/issue.types");
|
|
6
|
+
/**
|
|
7
|
+
* Example usage of the updated IssueService with IssueBuilder integration
|
|
8
|
+
* This file demonstrates various ways to use the IssueService with the new IssueBuilder
|
|
9
|
+
*/
|
|
10
|
+
class IssueServiceExample {
|
|
11
|
+
constructor(issueService) {
|
|
12
|
+
this.issueService = issueService;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Example 1: Using the updated createIssue method with IssueBuilder
|
|
16
|
+
*/
|
|
17
|
+
async createIssueWithBuilder() {
|
|
18
|
+
const issueBuilder = new IssueBuilder_1.IssueBuilder()
|
|
19
|
+
.setCategory(issue_types_1.IssuesCategory.OPERATIONS)
|
|
20
|
+
.setPropertyId("prop123")
|
|
21
|
+
.setTitle("Device Maintenance Required")
|
|
22
|
+
.setDescription("Device requires scheduled maintenance")
|
|
23
|
+
.setEntityId("device456")
|
|
24
|
+
.setEntityType(issue_types_1.EntityType.DEVICE)
|
|
25
|
+
.setPriority(issue_types_1.IssuePriority.HIGH)
|
|
26
|
+
.setAssignedTo("tech789")
|
|
27
|
+
.setCreatedBy("user123")
|
|
28
|
+
.setDueDate(new Date("2024-01-15"));
|
|
29
|
+
// Pass the IssueBuilder directly to createIssue
|
|
30
|
+
const issue = await this.issueService.createIssue(issueBuilder);
|
|
31
|
+
return issue;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Example 2: Using convenience methods for specific issue types
|
|
35
|
+
*/
|
|
36
|
+
async createSpecificIssues() {
|
|
37
|
+
// Create a readiness issue
|
|
38
|
+
const readinessIssue = await this.issueService.createReadinessIssue("prop123", "System Maintenance Required", "System maintenance is scheduled for tonight", "admin", "system456", issue_types_1.EntityType.PROPERTY, "maintenance-team", new Date("2024-01-20"));
|
|
39
|
+
// Create an operations issue
|
|
40
|
+
const operationsIssue = await this.issueService.createOperationsIssue("prop123", "Device Temperature High", "Device temperature exceeds normal operating range", "monitor", "device789", issue_types_1.EntityType.DEVICE, "tech-support", new Date("2024-01-10"));
|
|
41
|
+
// Create a security issue
|
|
42
|
+
const securityIssue = await this.issueService.createSecurityIssue("prop123", "Unauthorized Access Attempt", "Multiple failed login attempts detected", "security-system", "user123", issue_types_1.EntityType.USER, "security-team", new Date("2024-01-05"));
|
|
43
|
+
// Create an energy issue
|
|
44
|
+
const energyIssue = await this.issueService.createEnergyIssue("prop123", "High Energy Consumption", "Energy usage is 20% above normal levels", "energy-monitor", "zone456", issue_types_1.EntityType.COLLECTION, "energy-manager", new Date("2024-01-25"));
|
|
45
|
+
return { readinessIssue, operationsIssue, securityIssue, energyIssue };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Example 3: Using device-specific issue methods
|
|
49
|
+
*/
|
|
50
|
+
async createDeviceIssues() {
|
|
51
|
+
// Create a device issue with default category and priority
|
|
52
|
+
const deviceIssue1 = await this.issueService.createDeviceIssue("device123", "prop456", "Device Battery Low", "Device battery level is below 20%", "system", undefined, // Use default category
|
|
53
|
+
undefined, // Use default priority
|
|
54
|
+
"maintenance-team", new Date("2024-01-12"));
|
|
55
|
+
// Create a device issue with custom category and priority
|
|
56
|
+
const deviceIssue2 = await this.issueService.createDeviceIssue("device789", "prop456", "Device Firmware Update Available", "New firmware version is available for installation", "firmware-manager", issue_types_1.IssuesCategory.READINESS, issue_types_1.IssuePriority.MEDIUM, "admin", new Date("2024-01-20"));
|
|
57
|
+
return { deviceIssue1, deviceIssue2 };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Example 4: Using hub-specific issue methods
|
|
61
|
+
*/
|
|
62
|
+
async createHubIssues() {
|
|
63
|
+
// Create a hub issue with default settings
|
|
64
|
+
const hubIssue1 = await this.issueService.createHubIssue("hub123", "prop456", "Hub Connection Lost", "Hub has lost connection to the network", "network-monitor", undefined, // Use default category
|
|
65
|
+
undefined, // Use default priority
|
|
66
|
+
"network-admin", new Date("2024-01-05"));
|
|
67
|
+
// Create a hub issue with custom settings
|
|
68
|
+
const hubIssue2 = await this.issueService.createHubIssue("hub789", "prop456", "Hub Maintenance Required", "Hub requires scheduled maintenance", "maintenance-system", issue_types_1.IssuesCategory.READINESS, issue_types_1.IssuePriority.LOW, "technician", new Date("2024-01-15"));
|
|
69
|
+
return { hubIssue1, hubIssue2 };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Example 5: Using user-specific issue methods
|
|
73
|
+
*/
|
|
74
|
+
async createUserIssues() {
|
|
75
|
+
// Create a user issue
|
|
76
|
+
const userIssue = await this.issueService.createUserIssue("user456", "prop303", "User Access Review Required", "User access permissions need review", "access-control", issue_types_1.IssuesCategory.SECURITY, issue_types_1.IssuePriority.MEDIUM, "hr-admin", new Date("2024-01-30"));
|
|
77
|
+
return { userIssue };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Example 6: Using maintenance and urgent issue methods
|
|
81
|
+
*/
|
|
82
|
+
async createMaintenanceAndUrgentIssues() {
|
|
83
|
+
// Create a maintenance issue
|
|
84
|
+
const maintenanceIssue = await this.issueService.createMaintenanceIssue("prop505", "Scheduled Device Maintenance", "Regular maintenance is scheduled for this device", "maintenance-scheduler", "device789", issue_types_1.EntityType.DEVICE, "technician", new Date("2024-01-12"));
|
|
85
|
+
// Create an urgent issue
|
|
86
|
+
const urgentIssue = await this.issueService.createUrgentIssue("prop606", "Critical Hub Failure", "Hub is experiencing critical failures", "monitoring-system", "hub123", issue_types_1.EntityType.HUB, "emergency-tech", new Date("2024-01-03"));
|
|
87
|
+
return { maintenanceIssue, urgentIssue };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Example 7: Using static factory methods with IssueBuilder
|
|
91
|
+
*/
|
|
92
|
+
async createIssuesWithStaticMethods() {
|
|
93
|
+
// Create a device issue using static factory method
|
|
94
|
+
const deviceIssue = IssueBuilder_1.IssueBuilder.createDeviceIssue("device123", "prop456")
|
|
95
|
+
.setCategory(issue_types_1.IssuesCategory.OPERATIONS)
|
|
96
|
+
.setTitle("Device Offline")
|
|
97
|
+
.setDescription("Device has been offline for more than 5 minutes")
|
|
98
|
+
.setPriority(issue_types_1.IssuePriority.HIGH)
|
|
99
|
+
.setAssignedTo("tech-support")
|
|
100
|
+
.setCreatedBy("monitor")
|
|
101
|
+
.setDueDate(new Date("2024-01-10"));
|
|
102
|
+
const issue1 = await this.issueService.createIssue(deviceIssue);
|
|
103
|
+
// Create a hub issue using static factory method
|
|
104
|
+
const hubIssue = IssueBuilder_1.IssueBuilder.createHubIssue("hub789", "prop202")
|
|
105
|
+
.setCategory(issue_types_1.IssuesCategory.SECURITY)
|
|
106
|
+
.setTitle("Hub Security Breach")
|
|
107
|
+
.setDescription("Unauthorized access attempt detected on hub")
|
|
108
|
+
.setPriority(issue_types_1.IssuePriority.CRITICAL)
|
|
109
|
+
.setAssignedTo("security-team")
|
|
110
|
+
.setCreatedBy("security-system")
|
|
111
|
+
.setDueDate(new Date("2024-01-05"));
|
|
112
|
+
const issue2 = await this.issueService.createIssue(hubIssue);
|
|
113
|
+
return { issue1, issue2 };
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Example 8: Creating multiple issues efficiently
|
|
117
|
+
*/
|
|
118
|
+
async createMultipleIssues() {
|
|
119
|
+
const issues = [];
|
|
120
|
+
// Create multiple device issues efficiently
|
|
121
|
+
const deviceIds = ["device1", "device2", "device3"];
|
|
122
|
+
const propertyId = "prop123";
|
|
123
|
+
for (const deviceId of deviceIds) {
|
|
124
|
+
const issueBuilder = IssueBuilder_1.IssueBuilder.createDeviceIssue(deviceId, propertyId)
|
|
125
|
+
.setCategory(issue_types_1.IssuesCategory.OPERATIONS)
|
|
126
|
+
.setTitle(`Device ${deviceId} Status`)
|
|
127
|
+
.setDescription(`Status check for device ${deviceId}`)
|
|
128
|
+
.setPriority(issue_types_1.IssuePriority.MEDIUM)
|
|
129
|
+
.setAssignedTo("batch-processor")
|
|
130
|
+
.setCreatedBy("batch-processor")
|
|
131
|
+
.setDueDate(new Date("2024-01-15"));
|
|
132
|
+
const issue = await this.issueService.createIssue(issueBuilder);
|
|
133
|
+
issues.push(issue);
|
|
134
|
+
}
|
|
135
|
+
return issues;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Example 9: Creating issue with due date calculation
|
|
139
|
+
*/
|
|
140
|
+
async createIssueWithDueDate() {
|
|
141
|
+
const dueDate = new Date();
|
|
142
|
+
dueDate.setDate(dueDate.getDate() + 7); // Due in 7 days
|
|
143
|
+
const issueBuilder = new IssueBuilder_1.IssueBuilder()
|
|
144
|
+
.setCategory(issue_types_1.IssuesCategory.READINESS)
|
|
145
|
+
.setPropertyId("prop808")
|
|
146
|
+
.setTitle("System Update Required")
|
|
147
|
+
.setDescription("System requires critical security update")
|
|
148
|
+
.setEntityType(issue_types_1.EntityType.PROPERTY)
|
|
149
|
+
.setPriority(issue_types_1.IssuePriority.HIGH)
|
|
150
|
+
.setAssignedTo("system-admin")
|
|
151
|
+
.setCreatedBy("update-manager")
|
|
152
|
+
.setDueDate(dueDate);
|
|
153
|
+
const issue = await this.issueService.createIssue(issueBuilder);
|
|
154
|
+
return issue;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Example 10: Backward compatibility - still works with CreateIssueData
|
|
158
|
+
*/
|
|
159
|
+
async createIssueWithLegacyData() {
|
|
160
|
+
const issueData = {
|
|
161
|
+
category: issue_types_1.IssuesCategory.OPERATIONS,
|
|
162
|
+
propertyId: "prop123",
|
|
163
|
+
title: "Legacy Issue",
|
|
164
|
+
description: "This issue was created using the old CreateIssueData format",
|
|
165
|
+
entityId: "device456",
|
|
166
|
+
entityType: issue_types_1.EntityType.DEVICE,
|
|
167
|
+
priority: issue_types_1.IssuePriority.MEDIUM,
|
|
168
|
+
assignedTo: "tech-support",
|
|
169
|
+
createdBy: "legacy-system",
|
|
170
|
+
dueDate: new Date("2024-01-20")
|
|
171
|
+
};
|
|
172
|
+
// This still works with the updated createIssue method
|
|
173
|
+
const issue = await this.issueService.createIssue(issueData);
|
|
174
|
+
return issue;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.IssueServiceExample = IssueServiceExample;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class LocalPropertyService {
|
|
2
|
+
private readonly propertyRepository;
|
|
3
|
+
constructor();
|
|
4
|
+
getPropertyPreferences(propertyId: string): Promise<import("../interfaces").IPropertySettings | null>;
|
|
5
|
+
getProperty(propertyId: string): Promise<import("../interfaces").IProperty | null>;
|
|
6
|
+
getPropertyTimeZone(propertyId: string): Promise<string>;
|
|
7
|
+
getAllProperties(): Promise<any[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalPropertyService = void 0;
|
|
4
|
+
const Property_repository_1 = require("../repository/Property.repository");
|
|
5
|
+
class LocalPropertyService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.propertyRepository = new Property_repository_1.PropertyRepository();
|
|
8
|
+
}
|
|
9
|
+
async getPropertyPreferences(propertyId) {
|
|
10
|
+
if (!propertyId) {
|
|
11
|
+
throw new Error("Property ID is required");
|
|
12
|
+
}
|
|
13
|
+
return await this.propertyRepository.getPropertyPreferences(propertyId);
|
|
14
|
+
}
|
|
15
|
+
async getProperty(propertyId) {
|
|
16
|
+
if (!propertyId) {
|
|
17
|
+
throw new Error("Property ID is required");
|
|
18
|
+
}
|
|
19
|
+
return await this.propertyRepository.getProperty(propertyId);
|
|
20
|
+
}
|
|
21
|
+
async getPropertyTimeZone(propertyId) {
|
|
22
|
+
if (!propertyId) {
|
|
23
|
+
throw new Error("Property ID is required");
|
|
24
|
+
}
|
|
25
|
+
const property = await this.propertyRepository.getProperty(propertyId);
|
|
26
|
+
if (!property) {
|
|
27
|
+
throw new Error("Property not found");
|
|
28
|
+
}
|
|
29
|
+
return property.timezone;
|
|
30
|
+
}
|
|
31
|
+
async getAllProperties() {
|
|
32
|
+
const properties = await this.propertyRepository.getAllProperties();
|
|
33
|
+
return properties;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.LocalPropertyService = LocalPropertyService;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ISchedule } from "../interfaces/ISchedule";
|
|
2
|
+
export declare class LocalScheduleService {
|
|
3
|
+
private readonly scheduleRepository;
|
|
4
|
+
constructor();
|
|
5
|
+
getSchedule(scheduleId: string): Promise<any>;
|
|
6
|
+
setSchedule(scheduleId: string, schedule: ISchedule): Promise<any>;
|
|
7
|
+
getScheduleByZone(zoneId: string): Promise<any>;
|
|
8
|
+
deleteSchedule(scheduleId: string): Promise<any>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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.LocalScheduleService = void 0;
|
|
7
|
+
const typedi_1 = __importDefault(require("typedi"));
|
|
8
|
+
const Schedule_repository_1 = require("../repository/Schedule.repository");
|
|
9
|
+
class LocalScheduleService {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.scheduleRepository = typedi_1.default.get(Schedule_repository_1.ScheduleRepository);
|
|
12
|
+
}
|
|
13
|
+
async getSchedule(scheduleId) {
|
|
14
|
+
return await this.scheduleRepository.getSchedule(scheduleId);
|
|
15
|
+
}
|
|
16
|
+
async setSchedule(scheduleId, schedule) {
|
|
17
|
+
return await this.scheduleRepository.setSchedule(scheduleId, schedule);
|
|
18
|
+
}
|
|
19
|
+
async getScheduleByZone(zoneId) {
|
|
20
|
+
return await this.scheduleRepository.getScheduleByZone(zoneId);
|
|
21
|
+
}
|
|
22
|
+
async deleteSchedule(scheduleId) {
|
|
23
|
+
return await this.scheduleRepository.deleteSchedule(scheduleId);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.LocalScheduleService = LocalScheduleService;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface IAccessGroup {
|
|
2
|
+
id: string;
|
|
3
|
+
propertyId: string;
|
|
4
|
+
name: string;
|
|
5
|
+
displayName: string;
|
|
6
|
+
type: string;
|
|
7
|
+
externalId?: string;
|
|
8
|
+
refId?: string;
|
|
9
|
+
isDeleted: boolean;
|
|
10
|
+
createdBy: string;
|
|
11
|
+
createdAt: Date;
|
|
12
|
+
updatedAt: Date;
|
|
13
|
+
accessibleBy: string[];
|
|
14
|
+
}
|
|
@@ -20,4 +20,5 @@ export declare class AdminRepository {
|
|
|
20
20
|
getUser(userId: string): Promise<IUser | null>;
|
|
21
21
|
getZoneByDeviceId(deviceId: string): Promise<IZone | null>;
|
|
22
22
|
getAccessGroups(propertyId: string, accessibleBy?: string): Promise<IAccessGroup[]>;
|
|
23
|
+
queryCollectionHierarchy(filter: any): Promise<any>;
|
|
23
24
|
}
|
|
@@ -494,6 +494,15 @@ let AdminRepository = (() => {
|
|
|
494
494
|
throw new Error("Failed to get access groups");
|
|
495
495
|
}
|
|
496
496
|
}
|
|
497
|
+
async queryCollectionHierarchy(filter) {
|
|
498
|
+
try {
|
|
499
|
+
return await this.postgres.query(filter);
|
|
500
|
+
}
|
|
501
|
+
catch (error) {
|
|
502
|
+
console.error("Error in queryCollectionHierarchy:", error);
|
|
503
|
+
return [];
|
|
504
|
+
}
|
|
505
|
+
}
|
|
497
506
|
};
|
|
498
507
|
__setFunctionName(_classThis, "AdminRepository");
|
|
499
508
|
(() => {
|
|
@@ -13,4 +13,5 @@ export declare class AdminService {
|
|
|
13
13
|
getUser(userId: string): Promise<IUser | null>;
|
|
14
14
|
getZoneByDeviceId(deviceId: string): Promise<IZone | null>;
|
|
15
15
|
getAccessGroups(propertyId: string, accessibleBy?: string): Promise<IAccessGroup[]>;
|
|
16
|
+
queryCollectionHierarchy(filter: any): Promise<any>;
|
|
16
17
|
}
|
|
@@ -294,6 +294,9 @@ let AdminService = (() => {
|
|
|
294
294
|
}
|
|
295
295
|
return await this.adminRepository.getAccessGroups(propertyId, accessibleBy);
|
|
296
296
|
}
|
|
297
|
+
async queryCollectionHierarchy(filter) {
|
|
298
|
+
return await this.adminRepository.queryCollectionHierarchy(filter);
|
|
299
|
+
}
|
|
297
300
|
};
|
|
298
301
|
__setFunctionName(_classThis, "AdminService");
|
|
299
302
|
(() => {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ISchedule {
|
|
2
|
+
id: string;
|
|
3
|
+
propertyId: string;
|
|
4
|
+
referenceId: string;
|
|
5
|
+
startTime: string;
|
|
6
|
+
endTime: string;
|
|
7
|
+
source: string;
|
|
8
|
+
status: string;
|
|
9
|
+
isExpired: boolean;
|
|
10
|
+
isDeleted: boolean;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
updatedAt: string;
|
|
13
|
+
createdBy: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
5
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
6
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
7
|
+
var _, done = false;
|
|
8
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
9
|
+
var context = {};
|
|
10
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
11
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
12
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
13
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
14
|
+
if (kind === "accessor") {
|
|
15
|
+
if (result === void 0) continue;
|
|
16
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
17
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
18
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
19
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
20
|
+
}
|
|
21
|
+
else if (_ = accept(result)) {
|
|
22
|
+
if (kind === "field") initializers.unshift(_);
|
|
23
|
+
else descriptor[key] = _;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
27
|
+
done = true;
|
|
28
|
+
};
|
|
29
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
30
|
+
var useValue = arguments.length > 2;
|
|
31
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
32
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
33
|
+
}
|
|
34
|
+
return useValue ? value : void 0;
|
|
35
|
+
};
|
|
36
|
+
var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
|
|
37
|
+
if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
|
|
38
|
+
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
|
|
39
|
+
};
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.ScheduleRepository = void 0;
|
|
42
|
+
const db_1 = require("../../db");
|
|
43
|
+
const typedi_1 = require("typedi");
|
|
44
|
+
let ScheduleRepository = (() => {
|
|
45
|
+
let _classDecorators = [(0, typedi_1.Service)()];
|
|
46
|
+
let _classDescriptor;
|
|
47
|
+
let _classExtraInitializers = [];
|
|
48
|
+
let _classThis;
|
|
49
|
+
var ScheduleRepository = _classThis = class {
|
|
50
|
+
constructor() {
|
|
51
|
+
this.pmsPostgres = (0, db_1.getPmsPostgresClient)();
|
|
52
|
+
}
|
|
53
|
+
async getSchedule(scheduleId) {
|
|
54
|
+
try {
|
|
55
|
+
const schedule = await this.pmsPostgres.query(`SELECT * FROM dt_schedules WHERE "id" = $1`, [scheduleId]);
|
|
56
|
+
return schedule.rows[0];
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
console.error("Error in getSchedule:", error);
|
|
60
|
+
throw new Error("Failed to get schedule");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
__setFunctionName(_classThis, "ScheduleRepository");
|
|
65
|
+
(() => {
|
|
66
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
67
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
68
|
+
ScheduleRepository = _classThis = _classDescriptor.value;
|
|
69
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
70
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
71
|
+
})();
|
|
72
|
+
return ScheduleRepository = _classThis;
|
|
73
|
+
})();
|
|
74
|
+
exports.ScheduleRepository = ScheduleRepository;
|