@spytecgps/nova-orm 1.0.107 → 1.0.109

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 (34) hide show
  1. package/dist/entities/tag.d.ts +1 -0
  2. package/dist/entities/tag.js +5 -0
  3. package/dist/entities/tag.js.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/repositories/deviceStatus/extendedDeviceStatus.d.ts +12 -0
  6. package/dist/repositories/deviceStatus/extendedDeviceStatus.js +207 -0
  7. package/dist/repositories/deviceStatus/extendedDeviceStatus.js.map +1 -0
  8. package/dist/repositories/deviceStatus/getDeviceStatuses.d.ts +2 -3
  9. package/dist/repositories/deviceStatus/getDeviceStatuses.js +7 -2
  10. package/dist/repositories/deviceStatus/getDeviceStatuses.js.map +1 -1
  11. package/dist/repositories/deviceStatus/index.d.ts +2 -3
  12. package/dist/repositories/deviceStatus/index.js +10 -0
  13. package/dist/repositories/deviceStatus/index.js.map +1 -1
  14. package/dist/repositories/liveLinks/getLiveLinkData.js +6 -1
  15. package/dist/repositories/liveLinks/getLiveLinkData.js.map +1 -1
  16. package/dist/repositories/tags/index.d.ts +7 -1
  17. package/dist/repositories/tags/index.js +13 -0
  18. package/dist/repositories/tags/index.js.map +1 -1
  19. package/dist/repositories/tags/searchTags.js +5 -0
  20. package/dist/repositories/tags/searchTags.js.map +1 -1
  21. package/dist/repositories/tags/searchTagsByUser.d.ts +4 -0
  22. package/dist/repositories/tags/searchTagsByUser.js +46 -0
  23. package/dist/repositories/tags/searchTagsByUser.js.map +1 -0
  24. package/dist/repositories/tags/updateTag.js +1 -0
  25. package/dist/repositories/tags/updateTag.js.map +1 -1
  26. package/dist/types/deviceStatus.d.ts +48 -6
  27. package/dist/types/liveLinks.d.ts +3 -0
  28. package/dist/types/tag.d.ts +14 -0
  29. package/dist/types/tag.js +5 -0
  30. package/dist/types/tag.js.map +1 -1
  31. package/dist/utils/parsingTools.d.ts +1 -0
  32. package/dist/utils/parsingTools.js +9 -0
  33. package/dist/utils/parsingTools.js.map +1 -1
  34. package/package.json +1 -1
@@ -0,0 +1,12 @@
1
+ import { Device } from '../../entities';
2
+ import { ConnectionStatusInfo, DeviceStatusEntity, DeviceStatusRecord, GetDeviceStatusesParams } from '../../types/deviceStatus';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const getExtendedDeviceStatus: (deviceStatus: DeviceStatusEntity, deviceInfo: Device) => ConnectionStatusInfo[];
5
+ export declare const addOnlineStatus: (deviceStatus: DeviceStatusEntity) => string | undefined;
6
+ export declare const adjustDeviceStatusProperties: (params: GetDeviceStatusesParams) => void;
7
+ export declare const tryExtendDeviceStatus: (params: {
8
+ logger: Logger;
9
+ deviceStatus: DeviceStatusRecord;
10
+ withConnectionStatusInfo?: boolean;
11
+ withOnlineStatus?: boolean;
12
+ }) => void;
@@ -0,0 +1,207 @@
1
+ // threshold since exodus was created start ~ 2019-01-01
2
+ const ALWAYS_ON_THRESHOLD = new Date().getTime() - new Date(2019, 0, 1).getTime();
3
+ const THRESHOLD_24HRS = 24 * 60 * 60 * 1000; //24hrs
4
+ const CELL_THRESHOLD_MS = 300000; // 1000*60*5 // 5mins
5
+ const CELL_STOPPED_THRESHOLD_MS = 10800000; // 200*60*1000 // 200min - 3:20 - 3hr and 20 min
6
+ //add 100% padding for moving reporting frequency
7
+ const PADDING_MOVING = 2;
8
+ //add 20% padding for stopped reporting frequency
9
+ const PADDING_STOPPED = 1.2;
10
+ const HOUR_IN_MS = 60 * 60 * 1000;
11
+ const assetTrackerIdsList = [8, 9, 13, 20, 31, 32];
12
+ // Custom workflow only applies to Device Extanded Status
13
+ /*
14
+ We Had conversations of centralizing this flow .. but it is only consumed by deviceExt status so we only populate here
15
+ */
16
+ const getConfidenceValue = (dateDiffInMs, thresholdWindowMS) => {
17
+ let confidenceValue = 0;
18
+ if (dateDiffInMs > thresholdWindowMS) {
19
+ confidenceValue = 0;
20
+ }
21
+ else {
22
+ if (dateDiffInMs === 0) {
23
+ confidenceValue = 1;
24
+ }
25
+ else {
26
+ confidenceValue = dateDiffInMs / thresholdWindowMS;
27
+ }
28
+ }
29
+ return confidenceValue;
30
+ };
31
+ const isDeviceSettingsCalculationMethod = (deviceInfo) => {
32
+ return !!(deviceInfo?.clientDeviceSetting?.fixedStatus ||
33
+ (deviceInfo.clientDeviceSetting?.movingPingFrequency &&
34
+ deviceInfo.clientDeviceSetting?.movingPingFrequency > 0));
35
+ };
36
+ const getThresholdInMS = (devStatus, deviceInfo) => {
37
+ const { speed, deviceTypeId } = devStatus;
38
+ const isDeviceStopped = Number(speed) < 2;
39
+ if (isDeviceSettingsCalculationMethod(deviceInfo)) {
40
+ //new calculation using device settings
41
+ const { fixedStatus, movingPingFrequency, stoppedPingFrequency, } = deviceInfo.clientDeviceSetting;
42
+ //manual override/ fixed status
43
+ return fixedStatus
44
+ ? fixedStatus === 'ON'
45
+ ? ALWAYS_ON_THRESHOLD // always on, device status will never be older than this threshold
46
+ : 0
47
+ : isDeviceStopped
48
+ ? movingPingFrequency * 1000 * PADDING_STOPPED // value stored in seconds. threshold add 20% to reporting freq
49
+ : stoppedPingFrequency * 1000 * PADDING_MOVING; // value stored in seconds. threshold add 100% to reporting freq (values are smaller add room for delays)
50
+ }
51
+ // old legacy calculation method by deviceType
52
+ switch (deviceTypeId) {
53
+ case 8:
54
+ case 9:
55
+ return THRESHOLD_24HRS; //24hr
56
+ default:
57
+ return isDeviceStopped ? CELL_STOPPED_THRESHOLD_MS : CELL_THRESHOLD_MS;
58
+ }
59
+ };
60
+ // Extended Statuses
61
+ const deviceStatusCellularNetwork = (devStatus, deviceInfo) => {
62
+ const resp = {
63
+ name: 'cellularNetwork',
64
+ };
65
+ try {
66
+ const thresholdMS = getThresholdInMS(devStatus, deviceInfo);
67
+ // move to helper
68
+ const nowMS = new Date().getTime();
69
+ const thresholdDateMS = nowMS - thresholdMS;
70
+ const created = new Date(devStatus.created);
71
+ const createdMS = created.getTime();
72
+ //connection
73
+ resp.ok = createdMS >= thresholdDateMS;
74
+ resp.msg = `${devStatus.deviceTypeId}`;
75
+ //confidence
76
+ const dateDiffInMs = Math.abs(nowMS - createdMS);
77
+ resp.confidence = getConfidenceValue(dateDiffInMs, thresholdMS);
78
+ }
79
+ catch (err) {
80
+ resp.msg = JSON.stringify(err);
81
+ }
82
+ return resp;
83
+ };
84
+ const deviceStatusGPSNetwork = (devStatus, deviceInfo, cellularNetworkConnected) => {
85
+ const resp = {
86
+ name: 'gpsNetwork',
87
+ };
88
+ try {
89
+ if (!cellularNetworkConnected) {
90
+ // no cellular network, then no gps connection
91
+ resp.ok = false;
92
+ resp.confidence = 1;
93
+ }
94
+ else {
95
+ // there is cellularNetowkr connection, then check if GPS connected
96
+ //const gps:Date = new Date(devStatus.gpsUTCTime)
97
+ // gpsDate format -> "yyyyMMddHHmmss"
98
+ let gpsDateTime = new Date(0); //1970-01-01 very old date
99
+ if (devStatus.gpsUTCTime) {
100
+ const gpsYear = Number(devStatus.gpsUTCTime.substring(0, 4));
101
+ const gpsMonth = Number(devStatus.gpsUTCTime.substring(4, 6)) - 1; // the month is 0-indexed
102
+ const gpsDay = Number(devStatus.gpsUTCTime.substring(6, 8));
103
+ const gpsHour = Number(devStatus.gpsUTCTime.substring(8, 10));
104
+ const gpsMin = Number(devStatus.gpsUTCTime.substring(10, 12));
105
+ const gpsSec = Number(devStatus.gpsUTCTime.substring(12));
106
+ gpsDateTime = new Date(gpsYear, gpsMonth, gpsDay, gpsHour, gpsMin, gpsSec);
107
+ }
108
+ const sendTime = new Date(devStatus.sendTime);
109
+ const thresholdMS = getThresholdInMS(devStatus, deviceInfo);
110
+ const gpsMS = gpsDateTime.getTime();
111
+ const sendMS = sendTime.getTime();
112
+ const diff = Math.abs(sendMS - gpsMS);
113
+ //connection
114
+ resp.ok = diff < thresholdMS;
115
+ //confidence
116
+ resp.confidence = getConfidenceValue(diff, thresholdMS);
117
+ //resp.msg = ` GPS:${gpsDateTime.toISOString()} Send:${sendTime.toISOString()} sendT:${sendTime.getTime()} `
118
+ }
119
+ }
120
+ catch (err) {
121
+ resp.msg = JSON.stringify(err);
122
+ }
123
+ return resp;
124
+ };
125
+ const deviceStatusBatteryCharge = (devStatus) => {
126
+ const resp = {
127
+ name: 'batteryCharge',
128
+ };
129
+ try {
130
+ const batteryCharge = Number(devStatus.batteryPercentage);
131
+ resp.ok = !!batteryCharge === true;
132
+ resp.confidence = batteryCharge;
133
+ }
134
+ catch (err) {
135
+ resp.msg = JSON.stringify(err);
136
+ }
137
+ return resp;
138
+ };
139
+ export const getExtendedDeviceStatus = (deviceStatus, deviceInfo) => {
140
+ const result = [];
141
+ if (!(deviceStatus && deviceInfo))
142
+ return result;
143
+ // read from config
144
+ const extendedStatus = true;
145
+ const { deviceTypeId } = deviceInfo;
146
+ const validatedStatus = { ...deviceStatus, deviceTypeId };
147
+ //cell network
148
+ if (extendedStatus) {
149
+ //cellular net
150
+ const cellNetworkData = deviceStatusCellularNetwork(validatedStatus, deviceInfo);
151
+ result.push(cellNetworkData);
152
+ //gps net
153
+ const gpsNetworkData = deviceStatusGPSNetwork(validatedStatus, deviceInfo, !!cellNetworkData.ok);
154
+ result.push(gpsNetworkData);
155
+ //battery charge //BatteryCharge, only if it is not undefined, there are devices that do not report battery
156
+ const { batteryPercentage } = validatedStatus;
157
+ if (typeof batteryPercentage !== 'undefined') {
158
+ const batteryChargeData = deviceStatusBatteryCharge(validatedStatus);
159
+ result.push(batteryChargeData);
160
+ }
161
+ }
162
+ return result;
163
+ };
164
+ export const addOnlineStatus = (deviceStatus) => {
165
+ let offlineTime = 3.5 * HOUR_IN_MS;
166
+ if (assetTrackerIdsList.some((i) => i == deviceStatus.deviceTypeId)) {
167
+ offlineTime = 25 * HOUR_IN_MS;
168
+ }
169
+ if (deviceStatus?.restFrequency && deviceStatus?.restFrequency * 1000 > offlineTime) {
170
+ offlineTime = deviceStatus.restFrequency * 1000 + HOUR_IN_MS;
171
+ }
172
+ const sendTime = new Date(deviceStatus.sendTime);
173
+ const isOnline = new Date().getTime() - sendTime.getTime() < offlineTime;
174
+ return `${isOnline}`;
175
+ };
176
+ export const adjustDeviceStatusProperties = (params) => {
177
+ if (!params?.projectionOptions?.deviceStatusProperties?.length) {
178
+ return;
179
+ }
180
+ if (params?.projectionOptions?.deviceStatusProperties?.includes('connectionStatus')) {
181
+ params?.projectionOptions?.deviceStatusProperties?.push('deviceTypeId');
182
+ params?.projectionOptions?.deviceStatusProperties?.push('created');
183
+ params?.projectionOptions?.deviceStatusProperties?.push('speed');
184
+ params?.projectionOptions?.deviceStatusProperties?.push('gpsUTCTime');
185
+ params?.projectionOptions?.deviceStatusProperties?.push('sendTime');
186
+ params?.projectionOptions?.deviceStatusProperties?.push('batteryPercentage');
187
+ }
188
+ if (params?.projectionOptions?.deviceStatusProperties?.includes('isOnline')) {
189
+ params?.projectionOptions?.deviceStatusProperties?.push('sendTime');
190
+ params?.projectionOptions?.deviceStatusProperties?.push('restFrequency');
191
+ }
192
+ };
193
+ export const tryExtendDeviceStatus = (params) => {
194
+ const { logger, deviceStatus, withConnectionStatusInfo, withOnlineStatus } = params;
195
+ try {
196
+ if (withConnectionStatusInfo) {
197
+ deviceStatus.data.connectionStatus = getExtendedDeviceStatus(deviceStatus.data, deviceStatus.device);
198
+ }
199
+ if (withOnlineStatus) {
200
+ deviceStatus.data.isOnline = addOnlineStatus(deviceStatus.data);
201
+ }
202
+ }
203
+ catch (err) {
204
+ logger.error(err, 'Error while extending device status properties');
205
+ }
206
+ };
207
+ //# sourceMappingURL=extendedDeviceStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extendedDeviceStatus.js","sourceRoot":"","sources":["../../../src/repositories/deviceStatus/extendedDeviceStatus.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { DeviceStatus } from '../../entities/deviceStatus';
2
1
  import { NovaDataSource } from '../../novaDataSource';
3
- import { GetDeviceStatusesParams } from '../../types/deviceStatus';
2
+ import { DeviceStatusRecord, GetDeviceStatusesParams } from '../../types/deviceStatus';
4
3
  import { Logger } from '../../types/logger';
5
- export declare const getDeviceStatuses: (novaDataSource: NovaDataSource, params: GetDeviceStatusesParams, logger: Logger) => Promise<DeviceStatus[]>;
4
+ export declare const getDeviceStatuses: (novaDataSource: NovaDataSource, params: GetDeviceStatusesParams, logger: Logger) => Promise<DeviceStatusRecord[]>;
@@ -28,7 +28,10 @@ export const getDeviceStatuses = async (novaDataSource, params, logger) => {
28
28
  sendTimeMin: params.filters.minSendTime,
29
29
  });
30
30
  }
31
- if (params.filters.deviceStatus || params.projectionOptions?.withDevice) {
31
+ if (params.filters.deviceStatus ||
32
+ params.projectionOptions?.withDevice ||
33
+ params.projectionOptions?.deviceStatusProperties?.includes('connectionStatus') ||
34
+ params.projectionOptions?.withConnectionStatus) {
32
35
  queryBuilder = queryBuilder.leftJoinAndMapOne('deviceStatus.device', Device, 'device', 'deviceStatus.imei = device.imei and deviceStatus.clientId = device.clientId');
33
36
  if (params.filters.deviceStatus) {
34
37
  queryBuilder = queryBuilder.andWhere('device.status = :status', {
@@ -39,7 +42,9 @@ export const getDeviceStatuses = async (novaDataSource, params, logger) => {
39
42
  if (params.projectionOptions?.withClient) {
40
43
  queryBuilder = queryBuilder.leftJoinAndSelect('deviceStatus.client', 'client');
41
44
  }
42
- if (params.projectionOptions?.withClientDeviceSettings) {
45
+ if (params.projectionOptions?.withClientDeviceSettings ||
46
+ params.projectionOptions?.deviceStatusProperties?.includes('connectionStatus') ||
47
+ params.projectionOptions?.withConnectionStatus) {
43
48
  queryBuilder = queryBuilder.leftJoinAndMapOne('deviceStatus.clientDeviceSetting', ClientDeviceSetting, 'clientDeviceSetting', 'deviceStatus.imei = clientDeviceSetting.imei and deviceStatus.clientId = clientDeviceSetting.clientId');
44
49
  }
45
50
  queryBuilder = queryBuilder
@@ -1 +1 @@
1
- {"version":3,"file":"getDeviceStatuses.js","sourceRoot":"","sources":["../../../src/repositories/deviceStatus/getDeviceStatuses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getDeviceStatuses.js","sourceRoot":"","sources":["../../../src/repositories/deviceStatus/getDeviceStatuses.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { DeviceStatus } from '../../entities/deviceStatus';
2
- import { GetDeviceStatusesCountParams, GetDeviceStatusesParams, UpsertDeviceStatusesParams } from '../../types/deviceStatus';
1
+ import { DeviceStatusRecord, GetDeviceStatusesCountParams, GetDeviceStatusesParams, UpsertDeviceStatusesParams } from '../../types/deviceStatus';
3
2
  import { BaseRepository } from './../baseRepository';
4
3
  export declare class DeviceStatusRepository extends BaseRepository {
5
4
  /**
@@ -17,7 +16,7 @@ export declare class DeviceStatusRepository extends BaseRepository {
17
16
  * - projectionOptions.withClientDeviceSettings: Whether to get the client device settings
18
17
  * - projectionOptions.clientDeviceSettingsProperties: The client device settings properties to get
19
18
  */
20
- getDeviceStatuses(params: GetDeviceStatusesParams): Promise<DeviceStatus[]>;
19
+ getDeviceStatuses(params: GetDeviceStatusesParams): Promise<DeviceStatusRecord[]>;
21
20
  /**
22
21
  * Get total count of device statuses based on the filters
23
22
  * @param {GetDeviceStatusesCountParams} params containing information to get device statuses count
@@ -1,5 +1,6 @@
1
1
  import { NovaDataSource } from '../../novaDataSource';
2
2
  import { BaseRepository } from './../baseRepository';
3
+ import { adjustDeviceStatusProperties, tryExtendDeviceStatus } from './extendedDeviceStatus';
3
4
  import { getDeviceStatuses } from './getDeviceStatuses';
4
5
  import { getDeviceStatusesCount } from './getDeviceStatusesCount';
5
6
  import { upsertDeviceStatuses } from './upsertDeviceStatuses';
@@ -22,7 +23,16 @@ export class DeviceStatusRepository extends BaseRepository {
22
23
  async getDeviceStatuses(params) {
23
24
  this.logger.trace(params, 'DeviceStatusRepository::getDeviceStatus started with params');
24
25
  const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
26
+ adjustDeviceStatusProperties(params);
25
27
  const result = await getDeviceStatuses(novaDataSource, params, this.logger);
28
+ result?.forEach(deviceStatus => tryExtendDeviceStatus({
29
+ logger: this.logger,
30
+ deviceStatus,
31
+ withConnectionStatusInfo: params.projectionOptions?.withConnectionStatus ||
32
+ params.projectionOptions?.deviceStatusProperties?.includes('connectionStatus'),
33
+ withOnlineStatus: params.projectionOptions?.withOnlineStatus ||
34
+ params.projectionOptions?.deviceStatusProperties?.includes('isOnline'),
35
+ }));
26
36
  this.logger.trace(result, 'DeviceStatusRepository::getDeviceStatus result');
27
37
  return result;
28
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/deviceStatus/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAMrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACxD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAA+B;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6DAA6D,CAAC,CAAA;QAExF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAA;QAE3E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,sBAAsB,CAAC,MAAoC;QAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oEAAoE,CAAC,CAAA;QAE/F,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEhF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,uDAAuD,CAAC,CAAA;QAEtF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gEAAgE,CAAC,CAAA;QAE3F,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,mDAAmD,CAAC,CAAA;QAElF,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/deviceStatus/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAOrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACxD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAA+B;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,6DAA6D,CAAC,CAAA;QAExF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,4BAA4B,CAAC,MAAM,CAAC,CAAA;QAEpC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE3E,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAC7B,qBAAqB,CAAC;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY;YACZ,wBAAwB,EACtB,MAAM,CAAC,iBAAiB,EAAE,oBAAoB;gBAC9C,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,QAAQ,CAAC,kBAAkB,CAAC;YAChF,gBAAgB,EACd,MAAM,CAAC,iBAAiB,EAAE,gBAAgB;gBAC1C,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,QAAQ,CAAC,UAAU,CAAC;SACzE,CAAC,CACH,CAAA;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAA;QAE3E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,sBAAsB,CAAC,MAAoC;QAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oEAAoE,CAAC,CAAA;QAE/F,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEhF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,uDAAuD,CAAC,CAAA;QAEtF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gEAAgE,CAAC,CAAA;QAE3F,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,mDAAmD,CAAC,CAAA;QAElF,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { LiveLink } from '../../entities/liveLink';
2
2
  import { Enums } from '../../types';
3
- import { tryParseDate, tryParseFloat } from '../../utils/parsingTools';
3
+ import { tryParseBoolean, tryParseDate, tryParseFloat } from '../../utils/parsingTools';
4
4
  import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
5
5
  export const getLiveLinkData = async (novaDataSource, params, logger, deviceStatusRepository) => {
6
6
  if (!params?.filters?.id || !params?.filters?.clientId) {
@@ -49,6 +49,7 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
49
49
  withDevice: true,
50
50
  deviceProperties: ['imei', 'name', 'description', 'deviceTypeId', 'color', 'icon'],
51
51
  deviceStatusProperties: [
52
+ 'created',
52
53
  'latitude',
53
54
  'longitude',
54
55
  'address',
@@ -60,6 +61,8 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
60
61
  'batteryVoltage',
61
62
  'externalPowerVoltage',
62
63
  'reportType',
64
+ 'connectionStatus',
65
+ 'isOnline',
63
66
  ],
64
67
  },
65
68
  pagingOptions: {
@@ -91,6 +94,8 @@ export const getLiveLinkData = async (novaDataSource, params, logger, deviceStat
91
94
  batteryVoltage: tryParseFloat(data?.batteryVoltage) ?? undefined,
92
95
  externalPowerVoltage: tryParseFloat(data?.externalPowerVoltage) ?? undefined,
93
96
  reportType: tryParseFloat(data?.reportType) ?? undefined,
97
+ connectionStatus: data?.connectionStatus ?? undefined,
98
+ isOnline: tryParseBoolean(data?.isOnline) ?? undefined,
94
99
  },
95
100
  };
96
101
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"getLiveLinkData.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/getLiveLinkData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGnC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAGlE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,cAA8B,EAC9B,MAA6B,EAC7B,MAAc,EACd,sBAA8C,EACvB,EAAE;IACzB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,oEAAoE,CAAC,CAAA;QAC7F,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAA;KAClC;IAED,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAElE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,kEAAkE,CAAC,CAAA;QAC3F,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAA;KAClC;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAAyB,EAAE;QACrF,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE9D,MAAM,YAAY,GAAG,mBAAmB;aACrC,kBAAkB,CAAC,UAAU,CAAC;aAC9B,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;aAC1C,QAAQ,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE1E,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAA;QAE5C,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAA;SAClC;QAED,MAAM,MAAM,GAAiB;YAC3B,kBAAkB,EAAE,EAAE;SACvB,CAAA;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAmB,CAAA;QAE5C,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YAC3D,OAAO,MAAM,CAAA;SACd;QAED,MAAM,OAAO,GACX,QAAQ,CAAC,YAAY,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE;YACvB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAA;QAErC,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAA;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAA;QAEtD,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC,iBAAiB,CAAC;YACpE,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;gBACvC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM;aACxC;YACD,iBAAiB,EAAE;gBACjB,UAAU,EAAE,IAAI;gBAChB,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC;gBAClF,sBAAsB,EAAE;oBACtB,UAAU;oBACV,WAAW;oBACX,SAAS;oBACT,UAAU;oBACV,YAAY;oBACZ,mBAAmB;oBACnB,OAAO;oBACP,kBAAkB;oBAClB,gBAAgB;oBAChB,sBAAsB;oBACtB,YAAY;iBACb;aACF;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,QAAQ,GAAG,SAAS;aAC7B;YACD,YAAY,EAAE;gBACZ,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe;aACtD;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAC5B,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACnC,MAAM,IAAI,GAAG,YAAY,EAAE,IAAW,CAAA;YAEtC,OAAO;gBACL,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI;gBAC/B,WAAW,EAAE,YAAY,CAAC,MAAM,EAAE,WAAW;gBAC7C,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY;gBAC/C,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK;gBACjC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI;gBAC/B,MAAM,EAAE;oBACN,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS;oBACpD,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,SAAS;oBACtD,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,SAAS;oBACnC,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS;oBACnD,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,SAAS;oBACxD,iBAAiB,EAAE,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,SAAS;oBACtE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS;oBAC9C,gBAAgB,EAAE,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,SAAS;oBACpE,cAAc,EAAE,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,SAAS;oBAChE,oBAAoB,EAAE,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,SAAS;oBAC5E,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,SAAS;iBACzD;aACF,CAAA;QACH,CAAC,CAAC,CACH,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC,EACD,sCAAsC,EACtC,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"getLiveLinkData.js","sourceRoot":"","sources":["../../../src/repositories/liveLinks/getLiveLinkData.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Tag } from '../../entities';
2
- import { BulkCreateTagParams, CreateTagParams, DeleteTagParams, GetTagsResult, SearchTagsParams, UpdateTagParams } from '../../types/tag';
2
+ import { BulkCreateTagParams, CreateTagParams, DeleteTagParams, GetTagsResult, SearchTagsByUserParams, SearchTagsParams, UpdateTagParams } from '../../types/tag';
3
3
  import { BaseRepository } from '../baseRepository';
4
4
  export declare class TagsRepository extends BaseRepository {
5
5
  /**
@@ -32,4 +32,10 @@ export declare class TagsRepository extends BaseRepository {
32
32
  * @returns {Tag[]} the created tags
33
33
  */
34
34
  bulkCreateTags(params: BulkCreateTagParams): Promise<Tag[]>;
35
+ /**
36
+ * Search for tags by a given user
37
+ * @param {SearchTagsByUserParams} params containing information to search for tags by user
38
+ * @returns {Tag[]} the tags found
39
+ */
40
+ searchTagsByUser(params: SearchTagsByUserParams): Promise<GetTagsResult>;
35
41
  }
@@ -4,6 +4,7 @@ import { bulkCreateTags } from './bulkCreateTags';
4
4
  import { createTag } from './createTag';
5
5
  import { deleteTag } from './deleteTag';
6
6
  import { searchTags } from './searchTags';
7
+ import { searchTagsByUser } from './searchTagsByUser';
7
8
  import { updateTag } from './updateTag';
8
9
  export class TagsRepository extends BaseRepository {
9
10
  /**
@@ -66,5 +67,17 @@ export class TagsRepository extends BaseRepository {
66
67
  this.logger.trace(result, 'TagRepository::bulkCreateTags result');
67
68
  return result;
68
69
  }
70
+ /**
71
+ * Search for tags by a given user
72
+ * @param {SearchTagsByUserParams} params containing information to search for tags by user
73
+ * @returns {Tag[]} the tags found
74
+ */
75
+ async searchTagsByUser(params) {
76
+ this.logger.trace(params, `TagRepository::searchTagsByUser started with params`);
77
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
78
+ const result = await searchTagsByUser(novaDataSource, params, this.logger);
79
+ this.logger.trace(result, 'TagRepository::searchTagsByUser result');
80
+ return result;
81
+ }
69
82
  }
70
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/tags/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/tags/index.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,11 @@ export const searchTags = async (novaDataSource, params, logger) => {
23
23
  if (filters.tagIds?.length) {
24
24
  queryBuilder = queryBuilder.andWhere('id IN (:...tagIds)', { tagIds: filters.tagIds });
25
25
  }
26
+ if (filters.metadata) {
27
+ queryBuilder = queryBuilder.andWhere('JSON_CONTAINS(metadata, :metadata)', {
28
+ metadata: JSON.stringify(filters.metadata),
29
+ });
30
+ }
26
31
  // counting before applying pagination
27
32
  const tagCount = await queryBuilder.getCount();
28
33
  const limit = pagingOptions?.pageSize ?? 50;
@@ -1 +1 @@
1
- {"version":3,"file":"searchTags.js","sourceRoot":"","sources":["../../../src/repositories/tags/searchTags.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAEL,kCAAkC,GAEnC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,cAA8B,EAC9B,MAAwB,EACxB,MAAc,EACU,EAAE;IAC1B,IAAI,kBAAkB,CAAmB,MAAM,EAAE,kCAAkC,CAAC,EAAE;QACpF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,wDAAwD,CAAC,CAAA;QACjF,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;KACnC;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAA0B,EAAE;QACtF,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAEpD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;QACzC,IAAI,YAAY,GAAG,cAAc;aAC9B,kBAAkB,EAAE;aACpB,KAAK,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEhE,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;YACzB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;SACtF;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;YAC1B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;SACvF;QAED,sCAAsC;QACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAA;QAE9C,MAAM,KAAK,GAAG,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAA;QAC3C,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAEzB,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,CAAA;QAC3D,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEhC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAEzC,OAAO;YACL,IAAI;YACJ,UAAU,EAAE,QAAQ;SACJ,CAAA;IACpB,CAAC,EACD,4BAA4B,EAC5B,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"searchTags.js","sourceRoot":"","sources":["../../../src/repositories/tags/searchTags.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAEL,kCAAkC,GAEnC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,cAA8B,EAC9B,MAAwB,EACxB,MAAc,EACU,EAAE;IAC1B,IAAI,kBAAkB,CAAmB,MAAM,EAAE,kCAAkC,CAAC,EAAE;QACpF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,wDAAwD,CAAC,CAAA;QACjF,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;KACnC;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAA0B,EAAE;QACtF,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAEpD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;QACzC,IAAI,YAAY,GAAG,cAAc;aAC9B,kBAAkB,EAAE;aACpB,KAAK,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEhE,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;YACzB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;SACtF;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;YAC1B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;SACvF;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,oCAAoC,EAAE;gBACzE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC3C,CAAC,CAAA;SACH;QAED,sCAAsC;QACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAA;QAE9C,MAAM,KAAK,GAAG,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAA;QAC3C,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAEzB,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,CAAA;QAC3D,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEhC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAEzC,OAAO;YACL,IAAI;YACJ,UAAU,EAAE,QAAQ;SACJ,CAAA;IACpB,CAAC,EACD,4BAA4B,EAC5B,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { Logger } from '../../types/logger';
3
+ import { GetTagsResult, SearchTagsByUserParams } from '../../types/tag';
4
+ export declare const searchTagsByUser: (novaDataSource: NovaDataSource, params: SearchTagsByUserParams, logger: Logger) => Promise<GetTagsResult>;
@@ -0,0 +1,46 @@
1
+ import { EntityTag, Tag } from '../../entities';
2
+ import { oneRequiredSearchTagsByUserParamsAttributes, requiredSearchTagsByUserParamsAttributes, } from '../../types/tag';
3
+ import { allAttributesAreNull, anyAttributeIsNull } from '../../utils/paramsValidators';
4
+ import { getUserById } from '../users/getUserById';
5
+ export const searchTagsByUser = async (novaDataSource, params, logger) => {
6
+ if (anyAttributeIsNull(params, requiredSearchTagsByUserParamsAttributes) ||
7
+ allAttributesAreNull(params, oneRequiredSearchTagsByUserParamsAttributes)) {
8
+ logger.warn({ params }, 'TagsRepository::searchTags missing required parameters');
9
+ return { tags: [], totalCount: 0 };
10
+ }
11
+ // Force the query to run on master or slave
12
+ const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
13
+ const { filters, pagingOptions } = params;
14
+ let userId = filters.userNumberId;
15
+ if (!filters.userNumberId) {
16
+ const user = await getUserById(novaDataSource, { filters: { id: filters.userId } }, logger);
17
+ userId = user?.numberId;
18
+ }
19
+ return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
20
+ const tagsRepository = dataSource.getRepository(Tag);
21
+ let queryBuilder = tagsRepository
22
+ .createQueryBuilder('tag')
23
+ .where('tag.clientId = :clientId', { clientId: filters.clientId });
24
+ if (queryRunner) {
25
+ queryBuilder.setQueryRunner(queryRunner);
26
+ }
27
+ queryBuilder.innerJoin(EntityTag, 'entityTag', "entityTag.tagId = tag.id AND entityTag.entityType = 'User' AND entityTag.entityId = :userId", { userId });
28
+ if (filters.metadata) {
29
+ queryBuilder = queryBuilder.andWhere('JSON_CONTAINS(tag.metadata, :metadata)', {
30
+ metadata: JSON.stringify(filters.metadata),
31
+ });
32
+ }
33
+ // counting before applying pagination
34
+ const tagCount = await queryBuilder.getCount();
35
+ const limit = pagingOptions?.pageSize ?? 50;
36
+ queryBuilder.limit(limit);
37
+ const globalIndex = (pagingOptions?.pageIndex ?? 0) * limit;
38
+ queryBuilder.offset(globalIndex);
39
+ const tags = await queryBuilder.getMany();
40
+ return {
41
+ tags,
42
+ totalCount: tagCount,
43
+ };
44
+ }, 'TagsRepository::searchTags', dbQueryRunner);
45
+ };
46
+ //# sourceMappingURL=searchTagsByUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchTagsByUser.js","sourceRoot":"","sources":["../../../src/repositories/tags/searchTagsByUser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAG/C,OAAO,EAEL,2CAA2C,EAC3C,wCAAwC,GAEzC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,cAA8B,EAC9B,MAA8B,EAC9B,MAAc,EACU,EAAE;IAC1B,IACE,kBAAkB,CAAyB,MAAM,EAAE,wCAAwC,CAAC;QAC5F,oBAAoB,CAClB,MAAM,EACN,2CAA2C,CAC5C,EACD;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,wDAAwD,CAAC,CAAA;QACjF,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;KACnC;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;IAEzC,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAAA;IACjC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;QACzB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QAC3F,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAA;KACxB;IAED,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAA0B,EAAE;QACtF,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAEpD,IAAI,YAAY,GAAG,cAAc;aAC9B,kBAAkB,CAAC,KAAK,CAAC;aACzB,KAAK,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEpE,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,YAAY,CAAC,SAAS,CACpB,SAAS,EACT,WAAW,EACX,6FAA6F,EAC7F,EAAE,MAAM,EAAE,CACX,CAAA;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,wCAAwC,EAAE;gBAC7E,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC3C,CAAC,CAAA;SACH;QAED,sCAAsC;QACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAA;QAE9C,MAAM,KAAK,GAAG,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAA;QAC3C,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAEzB,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,CAAA;QAC3D,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEhC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAEzC,OAAO;YACL,IAAI;YACJ,UAAU,EAAE,QAAQ;SACJ,CAAA;IACpB,CAAC,EACD,4BAA4B,EAC5B,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -21,6 +21,7 @@ export const updateTag = async (novaDataSource, params, logger) => {
21
21
  color: values.color,
22
22
  description: values.description,
23
23
  name: values.name,
24
+ metadata: values.metadata,
24
25
  })
25
26
  .where('id = :id', { id: filters.tagId })
26
27
  .andWhere('clientId = :clientId', { clientId: filters.clientId })
@@ -1 +1 @@
1
- {"version":3,"file":"updateTag.js","sourceRoot":"","sources":["../../../src/repositories/tags/updateTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAAE,iCAAiC,EAAmB,MAAM,iBAAiB,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,cAA8B,EAC9B,MAAuB,EACvB,MAAc,EACI,EAAE;IACpB,IACE,kBAAkB,CAAC,MAAM,EAAE,iCAAiC,CAAC;QAC7D,CAAC,oBAAoB,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EACnE;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,sDAAsD,CAAC,CAAA;QAC/E,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAAoB,EAAE;QACzF,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACxD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;QAClC,MAAM,YAAY,GAAG,MAAM,cAAc;aACtC,kBAAkB,EAAE;aACpB,MAAM,CAAC,GAAG,CAAC;aACX,GAAG,CAAC;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,GAAG,EAAE;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;aACD,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;aACxC,QAAQ,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;aAChE,OAAO,EAAE,CAAA;QAEZ,OAAO,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAA;IAClC,CAAC,EAAE,gCAAgC,CAAC,CAAA;AACtC,CAAC,CAAA"}
1
+ {"version":3,"file":"updateTag.js","sourceRoot":"","sources":["../../../src/repositories/tags/updateTag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAAE,iCAAiC,EAAmB,MAAM,iBAAiB,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,cAA8B,EAC9B,MAAuB,EACvB,MAAc,EACI,EAAE;IACpB,IACE,kBAAkB,CAAC,MAAM,EAAE,iCAAiC,CAAC;QAC7D,CAAC,oBAAoB,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EACnE;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,sDAAsD,CAAC,CAAA;QAC/E,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAAoB,EAAE;QACzF,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACxD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;QAClC,MAAM,YAAY,GAAG,MAAM,cAAc;aACtC,kBAAkB,EAAE;aACpB,MAAM,CAAC,GAAG,CAAC;aACX,GAAG,CAAC;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,GAAG,EAAE;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;aACD,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;aACxC,QAAQ,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;aAChE,OAAO,EAAE,CAAA;QAEZ,OAAO,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAA;IAClC,CAAC,EAAE,gCAAgC,CAAC,CAAA;AACtC,CAAC,CAAA"}