dt-common-device 9.2.4 → 9.2.6
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/audit/ExcludeAudits.js +5 -0
- package/dist/audit/PushAudit.js +1 -2
- package/dist/chronicle/Cronicle.service.d.ts +6 -2
- package/dist/chronicle/Cronicle.service.js +19 -2
- package/dist/chronicle/ICronicle.interface.d.ts +1 -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/device/local/services/Device.service.js +10 -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.service.js +7 -12
- package/dist/queue/entities/HybridHttpQueue.js +43 -11
- package/dist/queue/utils/queueUtils.d.ts +1 -1
- package/dist/queue/utils/queueUtils.js +147 -53
- 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/copilotQueue/examples/CopilotQueue.example.d.ts +0 -37
- package/dist/copilotQueue/examples/CopilotQueue.example.js +0 -140
- package/dist/copilotQueue/examples/index.d.ts +0 -1
- package/dist/copilotQueue/examples/index.js +0 -17
- 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
|
@@ -25,37 +25,110 @@ class QueueUtils {
|
|
|
25
25
|
.get(queueKey));
|
|
26
26
|
}
|
|
27
27
|
static getOrCreateWorker(queueKey, workers, processFunction, jobResults) {
|
|
28
|
-
if (workers.has(queueKey))
|
|
29
|
-
|
|
28
|
+
if (workers.has(queueKey)) {
|
|
29
|
+
const existingWorker = workers.get(queueKey);
|
|
30
|
+
console.log(`[${new Date().toISOString()}] [getOrCreateWorker] Worker already exists for queue: ${queueKey}, checking if it's running...`);
|
|
31
|
+
// Check if worker is still connected/running
|
|
32
|
+
// If worker is closed or errored, recreate it
|
|
33
|
+
if (existingWorker && typeof existingWorker.isRunning === "function") {
|
|
34
|
+
const isRunning = existingWorker.isRunning();
|
|
35
|
+
console.log(`[${new Date().toISOString()}] [getOrCreateWorker] Existing worker running status: ${isRunning}`);
|
|
36
|
+
if (!isRunning) {
|
|
37
|
+
console.log(`[${new Date().toISOString()}] [getOrCreateWorker] Worker not running, closing and recreating...`);
|
|
38
|
+
try {
|
|
39
|
+
existingWorker.close();
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
// Ignore errors when closing
|
|
43
|
+
}
|
|
44
|
+
workers.delete(queueKey);
|
|
45
|
+
// Continue to create new worker below
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return; // Worker is running, keep using it
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Worker object exists but might be stale, try to use it
|
|
53
|
+
console.log(`[${new Date().toISOString()}] [getOrCreateWorker] Existing worker found but cannot verify status, keeping it`);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
console.log(`[${new Date().toISOString()}] [getOrCreateWorker] Creating new worker for queue: ${queueKey}`);
|
|
30
58
|
const { Worker } = require("bullmq");
|
|
31
|
-
|
|
59
|
+
// Wrap the process function to catch any errors during execution
|
|
60
|
+
const wrappedProcessFunction = async (job) => {
|
|
61
|
+
const wrapperStartTime = Date.now();
|
|
62
|
+
console.log(`[${new Date().toISOString()}] [Worker Wrapper] Worker picked up job - JobId: ${job?.id}, QueueKey: ${queueKey}, JobName: ${job?.name}, Delay: ${job?.opts?.delay || 0}ms`);
|
|
63
|
+
try {
|
|
64
|
+
const result = await processFunction(job);
|
|
65
|
+
const processingTime = Date.now() - wrapperStartTime;
|
|
66
|
+
console.log(`[${new Date().toISOString()}] [Worker Wrapper] Job processed successfully - JobId: ${job?.id}, ProcessingTime: ${processingTime}ms, ResultType: ${typeof result}, HasResult: ${result !== undefined && result !== null}`);
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const processingTime = Date.now() - wrapperStartTime;
|
|
71
|
+
console.log(`[${new Date().toISOString()}] [Worker Wrapper] Error processing job - JobId: ${job?.id}, Error: ${error.message}, Stack: ${error.stack}, ProcessingTime: ${processingTime}ms`);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const worker = new Worker(queueKey, wrappedProcessFunction, {
|
|
32
76
|
connection: (0, redis_1.getRedisClient)(),
|
|
33
77
|
concurrency: 1,
|
|
34
|
-
removeOnComplete:
|
|
35
|
-
removeOnFail:
|
|
78
|
+
removeOnComplete: { count: 100, age: 3600 }, // Keep completed jobs for debugging
|
|
79
|
+
removeOnFail: { count: 100, age: 3600 },
|
|
36
80
|
lockDuration: 300000,
|
|
37
|
-
stalledInterval:
|
|
81
|
+
stalledInterval: 30000, // Check for stalled jobs more frequently
|
|
38
82
|
});
|
|
83
|
+
console.log(`[${new Date().toISOString()}] [getOrCreateWorker] Worker instance created for queue: ${queueKey}`);
|
|
39
84
|
// Event handlers for job tracking
|
|
85
|
+
worker.on("active", (job) => {
|
|
86
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Job active - JobId: ${job.id}, QueueKey: ${queueKey}, JobName: ${job.name}, Data: ${JSON.stringify(job.data || {})}`);
|
|
87
|
+
});
|
|
88
|
+
worker.on("waiting", (jobId) => {
|
|
89
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Job waiting - JobId: ${jobId}, QueueKey: ${queueKey}`);
|
|
90
|
+
});
|
|
91
|
+
worker.on("delayed", (job) => {
|
|
92
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Job delayed - JobId: ${job.id}, QueueKey: ${queueKey}, Delay: ${job.opts?.delay || 0}ms`);
|
|
93
|
+
});
|
|
40
94
|
worker.on("completed", (job) => {
|
|
95
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Job completed - JobId: ${job.id}, QueueKey: ${queueKey}, ReturnValueType: ${typeof job.returnvalue}, HasReturnValue: ${job.returnvalue !== undefined}`);
|
|
41
96
|
(0, config_1.getConfig)().LOGGER.info(`HTTP request completed: ${job.id} [${queueKey}]`);
|
|
42
97
|
const result = job.returnvalue;
|
|
43
|
-
|
|
98
|
+
const jobResult = {
|
|
44
99
|
result,
|
|
45
100
|
resolved: true,
|
|
46
101
|
timestamp: Date.now(),
|
|
47
|
-
}
|
|
102
|
+
};
|
|
103
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Storing job result - JobId: ${job.id}, ResultType: ${typeof result}, Resolved: true`);
|
|
104
|
+
jobResults.set(job.id, jobResult);
|
|
105
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Job result stored in jobResults - JobId: ${job.id}, StoredResult: ${JSON.stringify(jobResult)}`);
|
|
48
106
|
});
|
|
49
107
|
worker.on("failed", (job, err) => {
|
|
108
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Job failed - JobId: ${job?.id}, QueueKey: ${queueKey}, Error: ${err.message}`);
|
|
50
109
|
(0, config_1.getConfig)().LOGGER.error(`HTTP request failed: ${job?.id} [${queueKey}], Error: ${err.message}`);
|
|
51
110
|
jobResults.set(job.id, {
|
|
52
111
|
error: err.message,
|
|
53
112
|
resolved: true,
|
|
54
113
|
timestamp: Date.now(),
|
|
55
114
|
});
|
|
115
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Job error stored in jobResults - JobId: ${job?.id}`);
|
|
116
|
+
});
|
|
117
|
+
worker.on("error", (err) => {
|
|
118
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Worker error - QueueKey: ${queueKey}, Error: ${err.message}, Stack: ${err.stack}`);
|
|
119
|
+
(0, config_1.getConfig)().LOGGER.error(`Worker error for ${queueKey}: ${err.message}`);
|
|
120
|
+
});
|
|
121
|
+
worker.on("ready", () => {
|
|
122
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Worker ready - QueueKey: ${queueKey}`);
|
|
123
|
+
});
|
|
124
|
+
worker.on("closing", () => {
|
|
125
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Worker closing - QueueKey: ${queueKey}`);
|
|
126
|
+
});
|
|
127
|
+
worker.on("closed", () => {
|
|
128
|
+
console.log(`[${new Date().toISOString()}] [Worker Event] Worker closed - QueueKey: ${queueKey}`);
|
|
56
129
|
});
|
|
57
|
-
worker.on("error", (err) => (0, config_1.getConfig)().LOGGER.error(`Worker error for ${queueKey}: ${err.message}`));
|
|
58
130
|
workers.set(queueKey, worker);
|
|
131
|
+
console.log(`[${new Date().toISOString()}] [getOrCreateWorker] Worker initialized and stored for queue: ${queueKey}`);
|
|
59
132
|
(0, config_1.getConfig)().LOGGER.info(`Worker initialized for queue: ${queueKey}`);
|
|
60
133
|
}
|
|
61
134
|
static async waitForRateLimitExpiry(connectionId, provider, rateLimitConfigs) {
|
|
@@ -63,6 +136,7 @@ class QueueUtils {
|
|
|
63
136
|
const config = rateLimitConfigs.get(provider);
|
|
64
137
|
if (!config)
|
|
65
138
|
return;
|
|
139
|
+
console.log(`[${new Date().toISOString()}] [waitForRateLimitExpiry] Starting wait for ${provider} [${connectionId}]`);
|
|
66
140
|
while (true) {
|
|
67
141
|
const timestamps = await rateLimit_utils_1.RateLimitUtils.getRawRequestTimestamps(key);
|
|
68
142
|
const now = Date.now();
|
|
@@ -70,18 +144,21 @@ class QueueUtils {
|
|
|
70
144
|
const recentRequests = timestamps.filter((t) => t > windowStart);
|
|
71
145
|
if (recentRequests.length < config.maxRequests) {
|
|
72
146
|
// Rate limit not exceeded, we can proceed
|
|
147
|
+
console.log(`[${new Date().toISOString()}] [waitForRateLimitExpiry] Rate limit cleared, proceeding`);
|
|
73
148
|
break;
|
|
74
149
|
}
|
|
75
150
|
// Calculate when the earliest request will expire
|
|
76
151
|
const earliestRequest = recentRequests[0];
|
|
77
152
|
const nextAvailableTime = earliestRequest + config.windowMs;
|
|
78
153
|
const delay = Math.max(nextAvailableTime - now, 1000); // At least 1 second
|
|
154
|
+
console.log(`[${new Date().toISOString()}] [waitForRateLimitExpiry] Rate limit exceeded, waiting ${delay}ms. Requests in window: ${recentRequests.length}/${config.maxRequests}`);
|
|
79
155
|
(0, config_1.getConfig)().LOGGER.info(`Rate limit exceeded for ${provider} [${connectionId}]. Waiting ${delay}ms until next allowed request. Current requests in window: ${recentRequests.length}/${config.maxRequests}`);
|
|
80
156
|
// Wait for the calculated delay
|
|
81
157
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
82
158
|
}
|
|
83
159
|
}
|
|
84
160
|
static async executeHttpRequest(url, method, options, connectionId, provider) {
|
|
161
|
+
console.log(`[${new Date().toISOString()}] [executeHttpRequest] Starting HTTP request - ${method} ${url} -> ${provider} [${connectionId}]`);
|
|
85
162
|
(0, config_1.getConfig)().LOGGER.info(`Executing: ${method} ${url} -> ${provider} [${connectionId}]`);
|
|
86
163
|
try {
|
|
87
164
|
// Record the request first
|
|
@@ -95,11 +172,13 @@ class QueueUtils {
|
|
|
95
172
|
...(options.body && { data: options.body }),
|
|
96
173
|
...(options.params && { params: options.params }),
|
|
97
174
|
});
|
|
175
|
+
console.log(`[${new Date().toISOString()}] [executeHttpRequest] HTTP request successful - ${method} ${url} for ${provider} [${connectionId}]`);
|
|
98
176
|
(0, config_1.getConfig)().LOGGER.info(`HTTP request successful: ${method} ${url} for ${provider} [${connectionId}]`);
|
|
99
177
|
// Return only the response data
|
|
100
178
|
return response.data;
|
|
101
179
|
}
|
|
102
180
|
catch (error) {
|
|
181
|
+
console.log(`[${new Date().toISOString()}] [executeHttpRequest] HTTP request failed - ${method} ${url} for ${provider} [${connectionId}], Error: ${error.message}`);
|
|
103
182
|
(0, config_1.getConfig)().LOGGER.error(`HTTP request failed: ${error.message}`);
|
|
104
183
|
await (0, dt_audit_library_1.publishAudit)({
|
|
105
184
|
eventType: "http.request.error",
|
|
@@ -119,62 +198,77 @@ class QueueUtils {
|
|
|
119
198
|
}
|
|
120
199
|
}
|
|
121
200
|
static async addJobToQueue(queueKey, jobData, delay, queues) {
|
|
201
|
+
console.log(`[${new Date().toISOString()}] [addJobToQueue] Adding job to BullMQ queue - QueueKey: ${queueKey}, Delay: ${delay}ms`);
|
|
122
202
|
const queue = this.getOrCreateQueue(queueKey, queues);
|
|
123
203
|
const job = await queue.add("http-request", jobData, {
|
|
124
204
|
delay,
|
|
125
205
|
attempts: 1,
|
|
126
|
-
removeOnComplete: { age: 300, count:
|
|
127
|
-
removeOnFail: { age: 300, count:
|
|
206
|
+
removeOnComplete: { age: 300, count: 100 },
|
|
207
|
+
removeOnFail: { age: 300, count: 100 },
|
|
128
208
|
});
|
|
209
|
+
console.log(`[${new Date().toISOString()}] [addJobToQueue] Job added to BullMQ - JobId: ${job.id}, QueueKey: ${queueKey}, Delay: ${delay}ms`);
|
|
210
|
+
// Log queue state for debugging
|
|
211
|
+
try {
|
|
212
|
+
const [waiting, delayed, active] = await Promise.all([
|
|
213
|
+
queue.getWaitingCount(),
|
|
214
|
+
queue.getDelayedCount(),
|
|
215
|
+
queue.getActiveCount(),
|
|
216
|
+
]);
|
|
217
|
+
console.log(`[${new Date().toISOString()}] [addJobToQueue] Queue state - QueueKey: ${queueKey}, Waiting: ${waiting}, Delayed: ${delayed}, Active: ${active}`);
|
|
218
|
+
}
|
|
219
|
+
catch (e) {
|
|
220
|
+
// Ignore errors getting queue state
|
|
221
|
+
}
|
|
129
222
|
return job.id;
|
|
130
223
|
}
|
|
131
|
-
static async waitForJobCompletion(jobId, queueKey,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
// Use 50ms for first 10 checks, then 100ms for remaining
|
|
144
|
-
// Max checks should cover the total timeout
|
|
145
|
-
const maxChecks = Math.ceil((totalTimeout - 500) / 100 + 10);
|
|
146
|
-
(0, config_1.getConfig)().LOGGER.info(`Waiting for job ${jobId}: delay=${jobDelay}ms, totalTimeout=${totalTimeout}ms, maxChecks=${maxChecks}`);
|
|
147
|
-
const checkJob = async () => {
|
|
148
|
-
if (++checkCount >= maxChecks) {
|
|
149
|
-
clearTimeout(timeoutId);
|
|
150
|
-
clearTimeout(backupTimeoutId);
|
|
151
|
-
return reject(new Error(`Job timeout: Request took too long (waited ${totalTimeout}ms, delay was ${jobDelay}ms)`));
|
|
152
|
-
}
|
|
224
|
+
static async waitForJobCompletion(jobId, queueKey, jobDelay = 0, windowMs = 60000) {
|
|
225
|
+
// Simple: delay (wait) + windowMs (execute) + HTTP timeout buffer
|
|
226
|
+
const httpTimeout = 60000;
|
|
227
|
+
const totalTimeout = jobDelay + windowMs + httpTimeout;
|
|
228
|
+
console.log(`[${new Date().toISOString()}] [waitForJobCompletion] Waiting for job ${jobId} - delay: ${jobDelay}ms, timeout: ${totalTimeout}ms`);
|
|
229
|
+
const startTime = Date.now();
|
|
230
|
+
const { Queue } = require("bullmq");
|
|
231
|
+
const queue = new Queue(queueKey, {
|
|
232
|
+
connection: (0, redis_1.getRedisClient)(),
|
|
233
|
+
});
|
|
234
|
+
return new Promise(async (resolve, reject) => {
|
|
235
|
+
const checkInterval = setInterval(async () => {
|
|
153
236
|
try {
|
|
154
|
-
const
|
|
155
|
-
if (
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
237
|
+
const job = await queue.getJob(jobId);
|
|
238
|
+
if (!job) {
|
|
239
|
+
const elapsed = Date.now() - startTime;
|
|
240
|
+
if (elapsed > totalTimeout) {
|
|
241
|
+
clearInterval(checkInterval);
|
|
242
|
+
await queue.close();
|
|
243
|
+
return reject(new Error(`Job ${jobId} not found and timeout exceeded`));
|
|
244
|
+
}
|
|
245
|
+
return; // Job not found yet, keep checking
|
|
246
|
+
}
|
|
247
|
+
const state = await job.getState();
|
|
248
|
+
if (state === "completed") {
|
|
249
|
+
console.log(`[${new Date().toISOString()}] [waitForJobCompletion] Job ${jobId} completed`);
|
|
250
|
+
clearInterval(checkInterval);
|
|
251
|
+
const result = job.returnvalue;
|
|
252
|
+
await queue.close();
|
|
253
|
+
return resolve(result);
|
|
254
|
+
}
|
|
255
|
+
if (state === "failed") {
|
|
256
|
+
console.log(`[${new Date().toISOString()}] [waitForJobCompletion] Job ${jobId} failed: ${job.failedReason}`);
|
|
257
|
+
clearInterval(checkInterval);
|
|
258
|
+
await queue.close();
|
|
259
|
+
return reject(new Error(job.failedReason || "Job failed"));
|
|
161
260
|
}
|
|
162
|
-
// Continue checking
|
|
163
|
-
timeoutId = setTimeout(checkJob, checkCount < 10 ? 50 : 100);
|
|
164
261
|
}
|
|
165
262
|
catch (error) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
reject(
|
|
263
|
+
clearInterval(checkInterval);
|
|
264
|
+
await queue.close();
|
|
265
|
+
reject(error);
|
|
169
266
|
}
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
// Backup timeout with the calculated total timeout
|
|
176
|
-
backupTimeoutId = setTimeout(() => {
|
|
177
|
-
clearTimeout(timeoutId);
|
|
267
|
+
}, 500); // Check every 500ms
|
|
268
|
+
// Timeout
|
|
269
|
+
setTimeout(() => {
|
|
270
|
+
clearInterval(checkInterval);
|
|
271
|
+
queue.close();
|
|
178
272
|
reject(new Error(`Request timeout: Maximum wait time exceeded (${totalTimeout}ms). Job delay was ${jobDelay}ms.`));
|
|
179
273
|
}, totalTimeout);
|
|
180
274
|
});
|
package/package.json
CHANGED
|
@@ -1,182 +0,0 @@
|
|
|
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;
|
|
@@ -1,17 +0,0 @@
|
|
|
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;
|
package/dist/admin/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./Admin.service";
|
package/dist/admin/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
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);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface AuditProperties {
|
|
2
|
-
resource: string;
|
|
3
|
-
propertyId: string;
|
|
4
|
-
propertyName?: string;
|
|
5
|
-
userId?: string;
|
|
6
|
-
userName?: string;
|
|
7
|
-
deviceId?: string;
|
|
8
|
-
deviceName?: string;
|
|
9
|
-
zoneId?: string;
|
|
10
|
-
zoneName?: string;
|
|
11
|
-
accessGroupId?: string;
|
|
12
|
-
accessGroupName?: string;
|
|
13
|
-
scheduleId?: string;
|
|
14
|
-
scheduleName?: string;
|
|
15
|
-
[key: string]: any;
|
|
16
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
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.ChronicleClass = void 0;
|
|
7
|
-
const config_1 = require("../config/config");
|
|
8
|
-
const axios_1 = __importDefault(require("axios"));
|
|
9
|
-
class ChronicleClass {
|
|
10
|
-
async registerJob(payload) {
|
|
11
|
-
const { name, apiUrl, method, schedule, cronJobId, target } = payload;
|
|
12
|
-
try {
|
|
13
|
-
const cronicleEndpoint = process.env.CRONICLE_ENDPOINT;
|
|
14
|
-
const cronicleApiKey = process.env.CRONICLE_API_KEY;
|
|
15
|
-
await axios_1.default.post(`${cronicleEndpoint}/create_event`, {
|
|
16
|
-
id: cronJobId,
|
|
17
|
-
title: name,
|
|
18
|
-
category: "general",
|
|
19
|
-
plugin: "urlplug",
|
|
20
|
-
timeZone: "UTC",
|
|
21
|
-
enabled: 1,
|
|
22
|
-
params: {
|
|
23
|
-
url: apiUrl,
|
|
24
|
-
method,
|
|
25
|
-
headers: `dt-cronicle-api-key: ${cronicleApiKey}`,
|
|
26
|
-
},
|
|
27
|
-
data: payload,
|
|
28
|
-
target: target,
|
|
29
|
-
timing: {
|
|
30
|
-
minutes: schedule.minutes ?? "0",
|
|
31
|
-
hours: schedule.hours ?? "*",
|
|
32
|
-
dom: schedule.dom ?? "*",
|
|
33
|
-
month: schedule.month ?? "*",
|
|
34
|
-
dow: schedule.dow ?? "*",
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
(0, config_1.getConfig)().LOGGER.info(`Successfully registered chronicle job: ${name} with ID: ${cronJobId}`);
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
(0, config_1.getConfig)().LOGGER.error(`Failed to create device: ${error.message}`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.ChronicleClass = ChronicleClass;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IConnection } from "./IConnection";
|
|
2
|
-
export declare class ConnectionRepository {
|
|
3
|
-
private readonly pool;
|
|
4
|
-
constructor();
|
|
5
|
-
createConnection(data: Partial<IConnection>): Promise<IConnection>;
|
|
6
|
-
getConnectionById(connectionId: string): Promise<IConnection>;
|
|
7
|
-
updateConnection(connectionId: string, data: Partial<IConnection>): Promise<any>;
|
|
8
|
-
}
|