dt-common-device 7.2.1 → 7.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/dist/admin/Admin.repository.d.ts +7 -0
  2. package/dist/admin/Admin.repository.js +182 -0
  3. package/dist/admin/Admin.service.d.ts +5 -0
  4. package/dist/admin/Admin.service.js +17 -0
  5. package/dist/admin/index.d.ts +1 -0
  6. package/dist/admin/index.js +17 -0
  7. package/dist/alerts/Alert.model.d.ts +1 -1
  8. package/dist/alerts/Alert.model.js +5 -0
  9. package/dist/alerts/Alert.repository.js +10 -0
  10. package/dist/alerts/Alert.service.d.ts +0 -7
  11. package/dist/alerts/Alert.service.js +107 -66
  12. package/dist/alerts/AlertBuilder.d.ts +5 -1
  13. package/dist/alerts/AlertBuilder.js +10 -0
  14. package/dist/alerts/alert.types.d.ts +17 -0
  15. package/dist/alerts/alert.types.js +13 -1
  16. package/dist/audit/AuditProperties.d.ts +16 -0
  17. package/dist/audit/AuditProperties.js +2 -0
  18. package/dist/chronicle/IChronicle.interface.d.ts +14 -0
  19. package/dist/chronicle/IChronicle.interface.js +2 -0
  20. package/dist/chronicle/chronicle.service.d.ts +4 -0
  21. package/dist/chronicle/chronicle.service.js +44 -0
  22. package/dist/connection/Connection.repository.d.ts +8 -0
  23. package/dist/connection/Connection.repository.js +92 -0
  24. package/dist/connection/Connection.service.d.ts +8 -0
  25. package/dist/connection/Connection.service.js +32 -0
  26. package/dist/connection/IConnection.d.ts +28 -0
  27. package/dist/connection/IConnection.js +16 -0
  28. package/dist/connection/index.d.ts +2 -0
  29. package/dist/connection/index.js +18 -0
  30. package/dist/constants/Event.d.ts +3 -1
  31. package/dist/constants/Event.js +3 -1
  32. package/dist/device/cloud/entities/CloudConnection.d.ts +6 -0
  33. package/dist/device/cloud/entities/CloudConnection.js +6 -0
  34. package/dist/device/cloud/entities/CloudDevice.d.ts +16 -0
  35. package/dist/device/cloud/entities/CloudDevice.js +26 -0
  36. package/dist/device/cloud/entities/CloudDeviceService.d.ts +5 -0
  37. package/dist/device/cloud/entities/CloudDeviceService.js +9 -0
  38. package/dist/device/cloud/entities/DeviceFactory.d.ts +7 -0
  39. package/dist/device/cloud/entities/DeviceFactory.js +80 -0
  40. package/dist/device/cloud/entities/index.d.ts +3 -0
  41. package/dist/device/cloud/entities/index.js +19 -0
  42. package/dist/device/cloud/interface.d.ts +101 -0
  43. package/dist/device/cloud/interface.js +3 -0
  44. package/dist/device/cloud/interfaces/ICloudConnection.d.ts +5 -0
  45. package/dist/device/cloud/interfaces/ICloudConnection.js +2 -0
  46. package/dist/device/cloud/interfaces/ICloudDevice.d.ts +9 -0
  47. package/dist/device/cloud/interfaces/ICloudDevice.js +2 -0
  48. package/dist/device/cloud/interfaces/ICloudDeviceService.d.ts +4 -0
  49. package/dist/device/cloud/interfaces/ICloudDeviceService.js +2 -0
  50. package/dist/device/cloud/interfaces/IConnectionService.d.ts +7 -0
  51. package/dist/device/cloud/interfaces/IConnectionService.js +2 -0
  52. package/dist/device/cloud/interfaces/IDeviceConnectionService.d.ts +7 -0
  53. package/dist/device/cloud/interfaces/IDeviceConnectionService.js +3 -0
  54. package/dist/device/cloud/interfaces/IDeviceFactory.d.ts +4 -0
  55. package/dist/device/cloud/interfaces/IDeviceFactory.js +2 -0
  56. package/dist/device/cloud/interfaces/IDeviceService.d.ts +8 -0
  57. package/dist/device/cloud/interfaces/IDeviceService.js +2 -0
  58. package/dist/device/cloud/interfaces/IDevicesService.d.ts +9 -0
  59. package/dist/device/cloud/interfaces/IDevicesService.js +2 -0
  60. package/dist/device/cloud/interfaces/IHubService.d.ts +5 -0
  61. package/dist/device/cloud/interfaces/IHubService.js +2 -0
  62. package/dist/device/cloud/interfaces/IRawDataTransformer.d.ts +4 -0
  63. package/dist/device/cloud/interfaces/IRawDataTransformer.js +2 -0
  64. package/dist/device/cloud/interfaces/IRawDevice.d.ts +17 -0
  65. package/dist/device/cloud/interfaces/IRawDevice.js +11 -0
  66. package/dist/device/cloud/interfaces/index.d.ts +5 -0
  67. package/dist/device/cloud/interfaces/index.js +21 -0
  68. package/dist/device/cloud/services/CloudDevice.service.d.ts +5 -0
  69. package/dist/device/cloud/services/CloudDevice.service.js +9 -0
  70. package/dist/device/cloud/services/Connection.service.d.ts +8 -0
  71. package/dist/device/cloud/services/Connection.service.js +6 -0
  72. package/dist/device/cloud/services/Device.service.d.ts +39 -0
  73. package/dist/device/cloud/services/Device.service.js +9 -0
  74. package/dist/device/cloud/services/DeviceCloudService.d.ts +42 -0
  75. package/dist/device/cloud/services/DeviceCloudService.js +59 -0
  76. package/dist/device/cloud/services/DeviceHub.service.d.ts +3 -0
  77. package/dist/device/cloud/services/DeviceHub.service.js +6 -0
  78. package/dist/device/cloud/services/Hub.service.d.ts +25 -0
  79. package/dist/device/cloud/services/Hub.service.js +9 -0
  80. package/dist/device/cloud/services/SmartThingsDeviceService.d.ts +38 -0
  81. package/dist/device/cloud/services/SmartThingsDeviceService.js +52 -0
  82. package/dist/device/cloud/services/index.d.ts +2 -0
  83. package/dist/device/cloud/services/index.js +18 -0
  84. package/dist/device/cloud/types.d.ts +52 -0
  85. package/dist/device/cloud/types.js +15 -0
  86. package/dist/device/index.d.ts +4 -0
  87. package/dist/device/index.js +20 -0
  88. package/dist/device/local/entities/AlertBuilder.d.ts +87 -0
  89. package/dist/device/local/entities/AlertBuilder.example.d.ts +11 -0
  90. package/dist/device/local/entities/AlertBuilder.example.js +117 -0
  91. package/dist/device/local/entities/AlertBuilder.js +179 -0
  92. package/dist/device/local/entities/IssueBuilder.d.ts +109 -0
  93. package/dist/device/local/entities/IssueBuilder.example.d.ts +16 -0
  94. package/dist/device/local/entities/IssueBuilder.example.js +196 -0
  95. package/dist/device/local/entities/IssueBuilder.js +237 -0
  96. package/dist/device/local/entities/index.d.ts +2 -0
  97. package/dist/device/local/entities/index.js +7 -0
  98. package/dist/device/local/events/EventHandler.d.ts +11 -0
  99. package/dist/device/local/events/EventHandler.js +86 -0
  100. package/dist/device/local/events/Events.d.ts +54 -0
  101. package/dist/device/local/events/Events.js +57 -0
  102. package/dist/device/local/events/index.d.ts +2 -0
  103. package/dist/device/local/events/index.js +7 -0
  104. package/dist/device/local/handler/EventHandler.d.ts +7 -0
  105. package/dist/device/local/handler/EventHandler.js +44 -0
  106. package/dist/device/local/interface.d.ts +0 -0
  107. package/dist/device/local/interface.js +1 -0
  108. package/dist/device/local/interfaces/IConnection.d.ts +26 -0
  109. package/dist/device/local/interfaces/IConnection.js +14 -0
  110. package/dist/device/local/interfaces/IDevice.d.ts +68 -0
  111. package/dist/device/local/interfaces/IDevice.js +10 -0
  112. package/dist/device/local/interfaces/IDtDevice.d.ts +16 -0
  113. package/dist/device/local/interfaces/IDtDevice.js +2 -0
  114. package/dist/device/local/interfaces/IHub.d.ts +46 -0
  115. package/dist/device/local/interfaces/IHub.js +2 -0
  116. package/dist/device/local/interfaces/IProperty.d.ts +29 -0
  117. package/dist/device/local/interfaces/IProperty.js +2 -0
  118. package/dist/device/local/interfaces/ISchedule.d.ts +25 -0
  119. package/dist/device/local/interfaces/ISchedule.js +2 -0
  120. package/dist/device/local/interfaces/index.d.ts +3 -0
  121. package/dist/device/local/interfaces/index.js +19 -0
  122. package/dist/device/local/models/Alert.model.d.ts +28 -0
  123. package/dist/device/local/models/Alert.model.js +222 -0
  124. package/dist/device/local/models/Issue.model.d.ts +28 -0
  125. package/dist/device/local/models/Issue.model.js +260 -0
  126. package/dist/device/local/repository/Alert.repository.d.ts +106 -0
  127. package/dist/device/local/repository/Alert.repository.js +374 -0
  128. package/dist/device/local/repository/Connection.repository.d.ts +8 -0
  129. package/dist/device/local/repository/Connection.repository.js +92 -0
  130. package/dist/device/local/repository/Device.repository.d.ts +30 -0
  131. package/dist/device/local/repository/Device.repository.js +325 -0
  132. package/dist/device/local/repository/Hub.repository.d.ts +13 -0
  133. package/dist/device/local/repository/Hub.repository.js +139 -0
  134. package/dist/device/local/repository/Issue.repository.d.ts +113 -0
  135. package/dist/device/local/repository/Issue.repository.js +401 -0
  136. package/dist/device/local/repository/Property.repository.d.ts +8 -0
  137. package/dist/device/local/repository/Property.repository.js +95 -0
  138. package/dist/device/local/repository/Schedule.repository.d.ts +9 -0
  139. package/dist/device/local/repository/Schedule.repository.js +109 -0
  140. package/dist/device/local/services/Alert.service.d.ts +137 -0
  141. package/dist/device/local/services/Alert.service.js +475 -0
  142. package/dist/device/local/services/AlertService.example.d.ts +55 -0
  143. package/dist/device/local/services/AlertService.example.js +148 -0
  144. package/dist/device/local/services/Connection.service.d.ts +8 -0
  145. package/dist/device/local/services/Connection.service.js +32 -0
  146. package/dist/device/local/services/Device.service.d.ts +40 -0
  147. package/dist/device/local/services/Device.service.js +391 -0
  148. package/dist/device/local/services/DeviceHub.service.d.ts +11 -0
  149. package/dist/device/local/services/DeviceHub.service.js +40 -0
  150. package/dist/device/local/services/Hub.service.d.ts +12 -0
  151. package/dist/device/local/services/Hub.service.js +107 -0
  152. package/dist/device/local/services/Issue.service.d.ts +168 -0
  153. package/dist/device/local/services/Issue.service.js +642 -0
  154. package/dist/device/local/services/IssueService.example.d.ts +68 -0
  155. package/dist/device/local/services/IssueService.example.js +177 -0
  156. package/dist/device/local/services/Property.service.d.ts +8 -0
  157. package/dist/device/local/services/Property.service.js +36 -0
  158. package/dist/device/local/services/Schedule.service.d.ts +9 -0
  159. package/dist/device/local/services/Schedule.service.js +26 -0
  160. package/dist/device/local/services/index.d.ts +3 -0
  161. package/dist/device/local/services/index.js +19 -0
  162. package/dist/entities/accessGroup/AccessGroup.repository.d.ts +1 -2
  163. package/dist/entities/accessGroup/AccessGroup.repository.js +1 -4
  164. package/dist/entities/accessGroup/AccessGroup.service.d.ts +1 -2
  165. package/dist/entities/accessGroup/AccessGroup.service.js +3 -4
  166. package/dist/entities/device/local/services/Device.service.d.ts +1 -0
  167. package/dist/entities/device/local/services/Device.service.js +43 -10
  168. package/dist/entities/guest/Guest.repository.d.ts +1 -1
  169. package/dist/entities/guest/Guest.repository.js +2 -5
  170. package/dist/entities/guest/Guest.service.d.ts +1 -1
  171. package/dist/entities/guest/Guest.service.js +1 -4
  172. package/dist/entities/schedules/Schedule.repository.d.ts +1 -1
  173. package/dist/entities/schedules/Schedule.repository.js +2 -5
  174. package/dist/entities/schedules/Schedule.service.d.ts +1 -1
  175. package/dist/entities/schedules/Schedule.service.js +1 -4
  176. package/dist/entities/user/User.repository.js +1 -4
  177. package/dist/entities/user/User.service.d.ts +1 -1
  178. package/dist/entities/user/User.service.js +1 -4
  179. package/dist/entities/zone/Zone.service.js +1 -4
  180. package/dist/events/DeviceEventHandler.js +1 -1
  181. package/dist/events/EventHandler.d.ts +1 -0
  182. package/dist/events/EventHandler.js +10 -0
  183. package/dist/issues/Issue.model.d.ts +1 -1
  184. package/dist/issues/Issue.repository.js +12 -0
  185. package/dist/issues/Issue.service.d.ts +0 -1
  186. package/dist/issues/Issue.service.js +40 -16
  187. package/dist/issues/issue.types.d.ts +3 -10
  188. package/dist/issues/issue.types.js +0 -9
  189. package/dist/pms/IPms.d.ts +6 -0
  190. package/dist/pms/IPms.js +10 -0
  191. package/dist/pms/index.d.ts +1 -0
  192. package/dist/pms/index.js +17 -0
  193. package/dist/property/IProperty.d.ts +29 -0
  194. package/dist/property/IProperty.js +2 -0
  195. package/dist/property/Property.repository.d.ts +8 -0
  196. package/dist/property/Property.repository.js +109 -0
  197. package/dist/property/Property.service.d.ts +8 -0
  198. package/dist/property/Property.service.js +124 -0
  199. package/dist/property/index.d.ts +2 -0
  200. package/dist/property/index.js +18 -0
  201. package/dist/queue/interfaces/IHttpRequestJob.d.ts +9 -0
  202. package/dist/queue/interfaces/IHttpRequestJob.js +2 -0
  203. package/dist/types/alert.types.d.ts +57 -0
  204. package/dist/types/alert.types.js +22 -0
  205. package/dist/types/config.types.d.ts +19 -0
  206. package/dist/types/config.types.js +2 -0
  207. package/dist/types/index.d.ts +3 -0
  208. package/dist/types/index.js +19 -0
  209. package/dist/types/issue.types.d.ts +90 -0
  210. package/dist/types/issue.types.js +40 -0
  211. package/dist/utils/http-utils.d.ts +13 -0
  212. package/dist/utils/http-utils.js +117 -0
  213. package/package.json +1 -1
@@ -88,10 +88,7 @@ let ZoneService = (() => {
88
88
  if (!zoneId) {
89
89
  throw new Error("Zone ID is required");
90
90
  }
91
- const zone = await this.zoneRepository.getZone(zoneId);
92
- if (!zone)
93
- return null;
94
- return zone;
91
+ return await this.zoneRepository.getZone(zoneId);
95
92
  }
96
93
  };
97
94
  __setFunctionName(_classThis, "ZoneService");
@@ -90,7 +90,7 @@ let DeviceEventHandler = (() => {
90
90
  Event_1.DT_EVENT_TYPES.DEVICE.STATUS.ONLINE,
91
91
  Event_1.DT_EVENT_TYPES.DEVICE.STATUS.OFFLINE,
92
92
  Event_1.DT_EVENT_TYPES.DEVICE.STATUS.UNKNOWN,
93
- Event_1.DT_EVENT_TYPES.DEVICE.BATTERY.REPLACED,
93
+ Event_1.DT_EVENT_TYPES.DEVICE.BATTERY.STATE.REPLACE,
94
94
  Event_1.DT_EVENT_TYPES.DEVICE.BATTERY.LEVEL.UNKNOWN,
95
95
  Event_1.DT_EVENT_TYPES.DEVICE.BATTERY.LEVEL.LOW,
96
96
  Event_1.DT_EVENT_TYPES.DEVICE.BATTERY.LEVEL.CRITICAL,
@@ -9,5 +9,6 @@ export declare class EventHandler {
9
9
  onStatusChange(deviceId: string, status: any, auditProperties: IAuditProperties, eventType: any): Promise<void>;
10
10
  onStatusChangeMany(query: IStatusQuery, status: IStatus, auditProperties: IAuditProperties, eventType: any): Promise<void>;
11
11
  onBatteryLevelChange(deviceId: string, batteryLevel: number, auditProperties: IAuditProperties): Promise<void>;
12
+ onBatteryStateChange(deviceId: string, batteryState: any, auditProperties: IAuditProperties): Promise<void>;
12
13
  onDeviceMetaChange(deviceId: string, metaData: Record<string, any>, auditProperties: IAuditProperties): Promise<void>;
13
14
  }
@@ -125,6 +125,16 @@ let EventHandler = (() => {
125
125
  },
126
126
  });
127
127
  }
128
+ async onBatteryStateChange(deviceId, batteryState, auditProperties) {
129
+ await (0, audit_1.pushAudit)({
130
+ auditType: Event_1.DT_EVENT_TYPES.DEVICE.BATTERY.STATE.REPLACE,
131
+ auditData: {
132
+ deviceId,
133
+ batteryState,
134
+ ...auditProperties,
135
+ },
136
+ });
137
+ }
128
138
  async onDeviceMetaChange(deviceId, metaData, auditProperties) {
129
139
  await (0, audit_1.pushAudit)({
130
140
  auditType: Event_1.DT_EVENT_TYPES.DEVICE.METADATA.UPDATED,
@@ -14,7 +14,7 @@ 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> & Required<{
17
+ declare const IssueSchema: mongoose.Schema<IIssueDocument, IIssueModel, IIssueMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IIssueDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IIssueDocument>, {}> & Omit<mongoose.FlatRecord<IIssueDocument> & Required<{
18
18
  _id: string;
19
19
  }> & {
20
20
  __v: number;
@@ -64,10 +64,22 @@ let IssueRepository = (() => {
64
64
  query.category = filters.category;
65
65
  if (filters.entityType)
66
66
  query.entityType = filters.entityType;
67
+ if (filters.entitySubType)
68
+ query.entitySubType = filters.entitySubType;
67
69
  if (filters.entityId)
68
70
  query.entityId = filters.entityId;
71
+ if (filters.type)
72
+ query.type = filters.type;
69
73
  if (!filters.includeDeleted)
70
74
  query.isDeleted = false;
75
+ // Date filtering
76
+ if (filters.startDate || filters.endDate) {
77
+ query.createdAt = {};
78
+ if (filters.startDate)
79
+ query.createdAt.$gte = filters.startDate;
80
+ if (filters.endDate)
81
+ query.createdAt.$lte = filters.endDate;
82
+ }
71
83
  if (filters.sort)
72
84
  query.sort = filters.sort;
73
85
  if (filters.limit)
@@ -43,7 +43,6 @@ export declare class IssueService {
43
43
  * Create issue for device going offline longer than baseline
44
44
  */
45
45
  createDeviceOfflineIssue(device: IDevice, source: Source, reason?: string): Promise<IIssueDocument | null>;
46
- createDoorLeftOpenIssue(device: IDevice, source: Source, reason?: string): Promise<IIssueDocument | null>;
47
46
  /**
48
47
  * Create issue for device battery level below threshold (READINESS + OPERATIONAL + ENERGY)
49
48
  */
@@ -172,6 +172,8 @@ let IssueService = (() => {
172
172
  issueBuilder.setCategory(data.category);
173
173
  if (data.priority)
174
174
  issueBuilder.setPriority(data.priority);
175
+ if (data.type)
176
+ issueBuilder.setType(data.type);
175
177
  if (data.assignedTo)
176
178
  issueBuilder.setAssignedTo(data.assignedTo);
177
179
  if (data.dueDate)
@@ -192,6 +194,8 @@ let IssueService = (() => {
192
194
  issueBuilder.setCategory(data.category);
193
195
  if (data.priority)
194
196
  issueBuilder.setPriority(data.priority);
197
+ if (data.type)
198
+ issueBuilder.setType(data.type);
195
199
  if (data.assignedTo)
196
200
  issueBuilder.setAssignedTo(data.assignedTo);
197
201
  if (data.dueDate)
@@ -212,6 +216,8 @@ let IssueService = (() => {
212
216
  issueBuilder.setCategory(data.category);
213
217
  if (data.priority)
214
218
  issueBuilder.setPriority(data.priority);
219
+ if (data.type)
220
+ issueBuilder.setType(data.type);
215
221
  if (data.assignedTo)
216
222
  issueBuilder.setAssignedTo(data.assignedTo);
217
223
  if (data.dueDate)
@@ -245,22 +251,30 @@ let IssueService = (() => {
245
251
  type: issue_types_1.IssueType.DEVICE_OFFLINE,
246
252
  });
247
253
  }
248
- async createDoorLeftOpenIssue(device, source, reason) {
249
- const zone = await typedi_1.default.get(Admin_service_1.AdminService).getZone(device.zoneId);
250
- return await this.createDeviceIssue({
251
- entityId: device.deviceId,
252
- entityType: issue_types_1.EntityType.DEVICE,
253
- entitySubType: device.deviceType.type,
254
- propertyId: device.propertyId,
255
- zoneId: device.zoneId,
256
- title: "Door Left Open - Requires Attention",
257
- description: `${zone?.name} has a door left open, for more than 10 minutes. ${reason ? `Reason: ${reason}.` : ""}`,
258
- createdBy: source,
259
- category: issue_types_1.IssuesCategory.SECURITY,
260
- priority: issue_types_1.IssuePriority.HIGH,
261
- type: issue_types_1.IssueType.DOOR_LEFT_OPEN,
262
- });
263
- }
254
+ // async createDoorLeftOpenIssue(
255
+ // device: IDevice,
256
+ // source: Source,
257
+ // reason?: string
258
+ // ): Promise<IIssueDocument | null> {
259
+ // const zone = await Container.get(AdminService).getZone(device.zoneId);
260
+ // return await this.createDeviceIssue({
261
+ // entityId: device.deviceId,
262
+ // entityType: EntityType.DEVICE,
263
+ // entitySubType: device.deviceType.type as EntitySubType,
264
+ // propertyId: device.propertyId,
265
+ // zoneId: device.zoneId,
266
+ // title: "Door Left Open - Requires Attention",
267
+ // description: `${
268
+ // zone?.name
269
+ // } has a door left open, for more than 10 minutes. ${
270
+ // reason ? `Reason: ${reason}.` : ""
271
+ // }`,
272
+ // createdBy: source,
273
+ // category: IssuesCategory.SECURITY,
274
+ // priority: IssuePriority.HIGH,
275
+ // type: IssueType.DOOR_LEFT_OPEN,
276
+ // });
277
+ // }
264
278
  /**
265
279
  * Create issue for device battery level below threshold (READINESS + OPERATIONAL + ENERGY)
266
280
  */
@@ -305,6 +319,8 @@ let IssueService = (() => {
305
319
  .setTitle(data.title)
306
320
  .setDescription(data.description)
307
321
  .setCreatedBy(data.createdBy);
322
+ if (data.type)
323
+ issueBuilder.setType(data.type);
308
324
  if (data.assignedTo)
309
325
  issueBuilder.setAssignedTo(data.assignedTo);
310
326
  if (data.dueDate)
@@ -321,6 +337,8 @@ let IssueService = (() => {
321
337
  .setTitle(data.title)
322
338
  .setDescription(data.description)
323
339
  .setCreatedBy(data.createdBy);
340
+ if (data.type)
341
+ issueBuilder.setType(data.type);
324
342
  if (data.assignedTo)
325
343
  issueBuilder.setAssignedTo(data.assignedTo);
326
344
  if (data.dueDate)
@@ -836,6 +854,12 @@ let IssueService = (() => {
836
854
  if (filters.skip && filters.skip < 0) {
837
855
  throw new Error("Skip must be non-negative");
838
856
  }
857
+ // Validate date filters
858
+ if (filters.startDate &&
859
+ filters.endDate &&
860
+ filters.startDate > filters.endDate) {
861
+ throw new Error("Start date must be before or equal to end date");
862
+ }
839
863
  }
840
864
  validateUpdateData(data) {
841
865
  if (data.title && data.title.trim().length < 5) {
@@ -52,18 +52,9 @@ export declare enum IssueType {
52
52
  DEVICE_OFFLINE = "DEVICE_OFFLINE",
53
53
  HUB_OFFLINE = "HUB_OFFLINE",
54
54
  ACCOUNT_UNAUTHORIZED = "ACCOUNT_UNAUTHORIZED",
55
- ACCOUNT_NEW_DEVICE = "ACCOUNT_NEW_DEVICE",
56
55
  ACCOUNT_MISSING_DEVICE = "ACCOUNT_MISSING_DEVICE",
57
- DEVICE_TAMPER_ATTEMPT = "DEVICE_TAMPER_ATTEMPT",
58
56
  LOCK_JAMMED = "LOCK_JAMMED",
59
- DEVICE_MALFUNCTION = "DEVICE_MALFUNCTION",
60
- DOOR_LEFT_OPEN = "DOOR_LEFT_OPEN",
61
- DOOR_OPEN_FREQUENT = "DOOR_OPEN_FREQUENT",
62
- DOOR_OPEN_OUTSIDE_BIZ_HOURS = "DOOR_OPEN_OUTSIDE_BIZ_HOURS",
63
- LOCK_ACCESS_EMERGENCY_CODE = "LOCK_ACCESS_EMERGENCY_CODE",
64
- LOCK_ACCESS_MASTER_CODE = "LOCK_ACCESS_MASTER_CODE",
65
- SPECIFIC_DOOR_ACCESS = "SPECIFIC_DOOR_ACCESS",
66
- GUEST_LOCK_FIRST_ACCESS = "GUEST_LOCK_FIRST_ACCESS"
57
+ DEVICE_MALFUNCTION = "DEVICE_MALFUNCTION"
67
58
  }
68
59
  export interface IssueDocument {
69
60
  _id: string;
@@ -139,6 +130,8 @@ export interface IIssueQuery {
139
130
  entitySubType?: EntitySubType;
140
131
  entityId?: string;
141
132
  includeDeleted?: boolean;
133
+ startDate?: Date;
134
+ endDate?: Date;
142
135
  limit?: number;
143
136
  skip?: number;
144
137
  sort?: {
@@ -54,16 +54,7 @@ var IssueType;
54
54
  IssueType["DEVICE_OFFLINE"] = "DEVICE_OFFLINE";
55
55
  IssueType["HUB_OFFLINE"] = "HUB_OFFLINE";
56
56
  IssueType["ACCOUNT_UNAUTHORIZED"] = "ACCOUNT_UNAUTHORIZED";
57
- IssueType["ACCOUNT_NEW_DEVICE"] = "ACCOUNT_NEW_DEVICE";
58
57
  IssueType["ACCOUNT_MISSING_DEVICE"] = "ACCOUNT_MISSING_DEVICE";
59
- IssueType["DEVICE_TAMPER_ATTEMPT"] = "DEVICE_TAMPER_ATTEMPT";
60
58
  IssueType["LOCK_JAMMED"] = "LOCK_JAMMED";
61
59
  IssueType["DEVICE_MALFUNCTION"] = "DEVICE_MALFUNCTION";
62
- IssueType["DOOR_LEFT_OPEN"] = "DOOR_LEFT_OPEN";
63
- IssueType["DOOR_OPEN_FREQUENT"] = "DOOR_OPEN_FREQUENT";
64
- IssueType["DOOR_OPEN_OUTSIDE_BIZ_HOURS"] = "DOOR_OPEN_OUTSIDE_BIZ_HOURS";
65
- IssueType["LOCK_ACCESS_EMERGENCY_CODE"] = "LOCK_ACCESS_EMERGENCY_CODE";
66
- IssueType["LOCK_ACCESS_MASTER_CODE"] = "LOCK_ACCESS_MASTER_CODE";
67
- IssueType["SPECIFIC_DOOR_ACCESS"] = "SPECIFIC_DOOR_ACCESS";
68
- IssueType["GUEST_LOCK_FIRST_ACCESS"] = "GUEST_LOCK_FIRST_ACCESS";
69
60
  })(IssueType || (exports.IssueType = IssueType = {}));
@@ -0,0 +1,6 @@
1
+ export declare enum PmsProvider {
2
+ Cloudbeds = "Cloudbeds",
3
+ StayNTouch = "StayNTouch",
4
+ HotelKey = "HotelKey",
5
+ Yanolja = "Yanolja"
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PmsProvider = void 0;
4
+ var PmsProvider;
5
+ (function (PmsProvider) {
6
+ PmsProvider["Cloudbeds"] = "Cloudbeds";
7
+ PmsProvider["StayNTouch"] = "StayNTouch";
8
+ PmsProvider["HotelKey"] = "HotelKey";
9
+ PmsProvider["Yanolja"] = "Yanolja";
10
+ })(PmsProvider || (exports.PmsProvider = PmsProvider = {}));
@@ -0,0 +1 @@
1
+ export * from "./IPms";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./IPms"), exports);
@@ -0,0 +1,29 @@
1
+ export interface IProperty {
2
+ id: string;
3
+ name: string;
4
+ apartment: string;
5
+ city: string;
6
+ country: string;
7
+ state: string;
8
+ street: string;
9
+ zipCode: string;
10
+ createdBy?: string;
11
+ isDeleted: boolean;
12
+ imageURL: string;
13
+ timezone: string;
14
+ officialName?: string;
15
+ sameAsOfficialName?: boolean;
16
+ phoneNumber?: string;
17
+ phoneNumberCountryCode?: string;
18
+ propertyKey?: string;
19
+ hubNetworkId?: string;
20
+ isTimeZoneOverridden: boolean;
21
+ createdAt: string;
22
+ updatedAt: string;
23
+ propertyBillingId?: string;
24
+ }
25
+ export interface IPropertySettings {
26
+ id: string;
27
+ propertyId: string;
28
+ settings: Record<string, any>;
29
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { IProperty, IPropertySettings } from "./IProperty";
2
+ export declare class PropertyRepository {
3
+ private readonly postgres;
4
+ constructor();
5
+ getPropertyPreferences(propertyId: string, keys?: string[]): Promise<IPropertySettings | null>;
6
+ getProperty(propertyId: string): Promise<IProperty | null>;
7
+ getAllProperties(): Promise<any[]>;
8
+ }
@@ -0,0 +1,109 @@
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.PropertyRepository = void 0;
42
+ const db_1 = require("../db");
43
+ const typedi_1 = require("typedi");
44
+ let PropertyRepository = (() => {
45
+ let _classDecorators = [(0, typedi_1.Service)()];
46
+ let _classDescriptor;
47
+ let _classExtraInitializers = [];
48
+ let _classThis;
49
+ var PropertyRepository = _classThis = class {
50
+ constructor() {
51
+ this.postgres = (0, db_1.getPostgresClient)();
52
+ }
53
+ async getPropertyPreferences(propertyId, keys) {
54
+ try {
55
+ const propertyPreferences = await this.postgres.query(`SELECT * FROM dt_property_settings WHERE "propertyId" = $1`, [propertyId]);
56
+ if (propertyPreferences.rows.length > 0) {
57
+ if (keys && keys.length > 0) {
58
+ const settings = propertyPreferences.rows[0].settings;
59
+ const filteredSettings = {};
60
+ // Only include the requested keys from settings
61
+ keys.forEach((key) => {
62
+ if (settings && settings[key] !== undefined) {
63
+ filteredSettings[key] = settings[key];
64
+ }
65
+ });
66
+ return {
67
+ ...propertyPreferences.rows[0],
68
+ settings: filteredSettings,
69
+ };
70
+ }
71
+ return propertyPreferences.rows[0];
72
+ }
73
+ return null;
74
+ }
75
+ catch (error) {
76
+ console.error("Error in getPropertyPreferences:", error);
77
+ throw new Error("Failed to get property preferences");
78
+ }
79
+ }
80
+ async getProperty(propertyId) {
81
+ const property = await this.postgres.query("SELECT * FROM dt_properties WHERE id = $1", [propertyId]);
82
+ if (property.rows.length > 0) {
83
+ return property.rows[0];
84
+ }
85
+ return null;
86
+ }
87
+ async getAllProperties() {
88
+ try {
89
+ //Retrieve all the properties ids from the database
90
+ const properties = await this.postgres.query("SELECT id FROM dt_properties");
91
+ return properties.rows.map((property) => property.id);
92
+ }
93
+ catch (error) {
94
+ console.log(error);
95
+ throw new Error("Failed to get all properties");
96
+ }
97
+ }
98
+ };
99
+ __setFunctionName(_classThis, "PropertyRepository");
100
+ (() => {
101
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
102
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
103
+ PropertyRepository = _classThis = _classDescriptor.value;
104
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
105
+ __runInitializers(_classThis, _classExtraInitializers);
106
+ })();
107
+ return PropertyRepository = _classThis;
108
+ })();
109
+ exports.PropertyRepository = PropertyRepository;
@@ -0,0 +1,8 @@
1
+ export declare class LocalPropertyService {
2
+ private readonly propertyRepository;
3
+ constructor();
4
+ getPropertyPreferences(propertyId: string, keys?: string[]): Promise<import("./IProperty").IPropertySettings | null>;
5
+ getProperty(propertyId: string): Promise<import("./IProperty").IProperty | null>;
6
+ getPropertyTimeZone(propertyId: string): Promise<string>;
7
+ getAllProperties(): Promise<any[]>;
8
+ }
@@ -0,0 +1,124 @@
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.LocalPropertyService = void 0;
75
+ const Property_repository_1 = require("./Property.repository");
76
+ const typedi_1 = __importStar(require("typedi"));
77
+ let LocalPropertyService = (() => {
78
+ let _classDecorators = [(0, typedi_1.Service)()];
79
+ let _classDescriptor;
80
+ let _classExtraInitializers = [];
81
+ let _classThis;
82
+ var LocalPropertyService = _classThis = class {
83
+ constructor() {
84
+ // Use dependency injection instead of creating new instance
85
+ this.propertyRepository = typedi_1.default.get(Property_repository_1.PropertyRepository);
86
+ }
87
+ async getPropertyPreferences(propertyId, keys) {
88
+ if (!propertyId) {
89
+ throw new Error("Property ID is required");
90
+ }
91
+ return await this.propertyRepository.getPropertyPreferences(propertyId, keys);
92
+ }
93
+ async getProperty(propertyId) {
94
+ if (!propertyId) {
95
+ throw new Error("Property ID is required");
96
+ }
97
+ return await this.propertyRepository.getProperty(propertyId);
98
+ }
99
+ async getPropertyTimeZone(propertyId) {
100
+ if (!propertyId) {
101
+ throw new Error("Property ID is required");
102
+ }
103
+ const property = await this.propertyRepository.getProperty(propertyId);
104
+ if (!property) {
105
+ throw new Error("Property not found");
106
+ }
107
+ return property.timezone;
108
+ }
109
+ async getAllProperties() {
110
+ const properties = await this.propertyRepository.getAllProperties();
111
+ return properties;
112
+ }
113
+ };
114
+ __setFunctionName(_classThis, "LocalPropertyService");
115
+ (() => {
116
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
117
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
118
+ LocalPropertyService = _classThis = _classDescriptor.value;
119
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
120
+ __runInitializers(_classThis, _classExtraInitializers);
121
+ })();
122
+ return LocalPropertyService = _classThis;
123
+ })();
124
+ exports.LocalPropertyService = LocalPropertyService;
@@ -0,0 +1,2 @@
1
+ export * from "./IProperty";
2
+ export * from "./Property.service";
@@ -0,0 +1,18 @@
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("./IProperty"), exports);
18
+ __exportStar(require("./Property.service"), exports);
@@ -0,0 +1,9 @@
1
+ import { HttpCallOption } from "../types/http.types";
2
+ export interface IHttpRequestJob {
3
+ connectionId: string;
4
+ provider: string;
5
+ url: string;
6
+ method: string;
7
+ options: HttpCallOption;
8
+ timestamp: number;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });