@spytecgps/nova-orm 1.0.109 → 1.0.111
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/index.js +1 -1
- package/dist/repositories/deviceBehaviors/index.d.ts +1 -23
- package/dist/repositories/deviceBehaviors/index.js +0 -36
- package/dist/repositories/deviceBehaviors/index.js.map +1 -1
- package/dist/repositories/entityTags/deleteEntityTagById.d.ts +3 -0
- package/dist/repositories/entityTags/deleteEntityTagById.js +13 -0
- package/dist/repositories/entityTags/deleteEntityTagById.js.map +1 -0
- package/dist/repositories/entityTags/index.d.ts +6 -0
- package/dist/repositories/entityTags/index.js +18 -5
- package/dist/repositories/entityTags/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/repositories/deviceBehaviors/getDevicesLastBehaviorTask.d.ts +0 -5
- package/dist/repositories/deviceBehaviors/getDevicesLastBehaviorTask.js +0 -48
- package/dist/repositories/deviceBehaviors/getDevicesLastBehaviorTask.js.map +0 -1
- package/dist/repositories/deviceBehaviors/getLatestDeviceBehaviorTasks.d.ts +0 -4
- package/dist/repositories/deviceBehaviors/getLatestDeviceBehaviorTasks.js +0 -49
- package/dist/repositories/deviceBehaviors/getLatestDeviceBehaviorTasks.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeviceBehavior, UserDeviceBehaviorTask } from '../../entities';
|
|
2
|
-
import { CreateDeviceBehaviorTaskParams, GetDeviceBehaviorsByIdsParams, GetDeviceBehaviorsParams, GetDeviceBehaviorTasksParams,
|
|
2
|
+
import { CreateDeviceBehaviorTaskParams, GetDeviceBehaviorsByIdsParams, GetDeviceBehaviorsParams, GetDeviceBehaviorTasksParams, UpdateDeviceBehaviorTaskParams, UpsertDeviceBehaviorParams } from '../../types/deviceBehaviors';
|
|
3
3
|
import { BaseRepository } from '../baseRepository';
|
|
4
4
|
export declare class DeviceBehaviorsRepository extends BaseRepository {
|
|
5
5
|
/**
|
|
@@ -35,19 +35,6 @@ export declare class DeviceBehaviorsRepository extends BaseRepository {
|
|
|
35
35
|
* @returns The device behavior tasks list
|
|
36
36
|
*/
|
|
37
37
|
getDeviceBehaviorTasks(params: GetDeviceBehaviorTasksParams): Promise<UserDeviceBehaviorTask[]>;
|
|
38
|
-
/**
|
|
39
|
-
* Get the devices last behavior task
|
|
40
|
-
* @param {GettDevicesLastBehaviorTaskParams} params containing information to get device behavior tasks
|
|
41
|
-
* Filters (One of taskId or imeiList is required):
|
|
42
|
-
* - filters.imeiList: The imei list
|
|
43
|
-
* - filters.status: The status, optional
|
|
44
|
-
* - filters.deviceBehaviorIdList: The device behavior id list, optional
|
|
45
|
-
* Paging options:
|
|
46
|
-
* - pagingOptions.offset: The offset, optional. Default is 0
|
|
47
|
-
* - pagingOptions.limit: The limit, optional. Default is 100
|
|
48
|
-
* @returns The device behavior tasks list
|
|
49
|
-
*/
|
|
50
|
-
getDevicesLastBehaviorTask(params: GettDevicesLastBehaviorTaskParams): Promise<UserDeviceBehaviorTask[]>;
|
|
51
38
|
/**
|
|
52
39
|
* Create device behavior task
|
|
53
40
|
* @param {CreateDeviceBehaviorTaskParams} params containing information to create a device behavior task
|
|
@@ -74,15 +61,6 @@ export declare class DeviceBehaviorsRepository extends BaseRepository {
|
|
|
74
61
|
* @returns Whether the device behavior task was updated
|
|
75
62
|
*/
|
|
76
63
|
updateDeviceBehaviorTask(params: UpdateDeviceBehaviorTaskParams): Promise<boolean>;
|
|
77
|
-
/**
|
|
78
|
-
* Get latest device behavior tasks
|
|
79
|
-
* @param {GetLatestDeviceBehaviorTasksParams} params containing information to get latest device behavior tasks
|
|
80
|
-
* - params.filters.clientId: The client id
|
|
81
|
-
* - params.filters.type: The device behavior type
|
|
82
|
-
* - params.filters.status: The task status
|
|
83
|
-
* @returns The latest device behavior tasks list
|
|
84
|
-
*/
|
|
85
|
-
getLatestDeviceBehaviorTasks(params: GetLatestDeviceBehaviorTasksParams): Promise<GetLatestDeviceBehaviorTasksResult[]>;
|
|
86
64
|
/**
|
|
87
65
|
* Upsert device behavior
|
|
88
66
|
* @param {UpsertDeviceBehaviorParams} params containing information to upsert a device behavior
|
|
@@ -4,8 +4,6 @@ import { createDeviceBehaviorTask } from './createDeviceBehaviorTask';
|
|
|
4
4
|
import { getDeviceBehaviors } from './getDeviceBehaviors';
|
|
5
5
|
import { getDeviceBehaviorsByIds } from './getDeviceBehaviorsByIds';
|
|
6
6
|
import { getDeviceBehaviorTasks } from './getDeviceBehaviorTasks';
|
|
7
|
-
import { getDevicesLastBehaviorTask } from './getDevicesLastBehaviorTask';
|
|
8
|
-
import { getLatestDeviceBehaviorTasks } from './getLatestDeviceBehaviorTasks';
|
|
9
7
|
import { updateDeviceBehaviorTask } from './updateDeviceBehaviorTask';
|
|
10
8
|
import { upsertDeviceBehavior } from './upsertDeviceBehavior';
|
|
11
9
|
export class DeviceBehaviorsRepository extends BaseRepository {
|
|
@@ -60,25 +58,6 @@ export class DeviceBehaviorsRepository extends BaseRepository {
|
|
|
60
58
|
this.logger.trace(result, 'DeviceBehaviorsRepository::getDeviceBehaviorTasks result');
|
|
61
59
|
return result;
|
|
62
60
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Get the devices last behavior task
|
|
65
|
-
* @param {GettDevicesLastBehaviorTaskParams} params containing information to get device behavior tasks
|
|
66
|
-
* Filters (One of taskId or imeiList is required):
|
|
67
|
-
* - filters.imeiList: The imei list
|
|
68
|
-
* - filters.status: The status, optional
|
|
69
|
-
* - filters.deviceBehaviorIdList: The device behavior id list, optional
|
|
70
|
-
* Paging options:
|
|
71
|
-
* - pagingOptions.offset: The offset, optional. Default is 0
|
|
72
|
-
* - pagingOptions.limit: The limit, optional. Default is 100
|
|
73
|
-
* @returns The device behavior tasks list
|
|
74
|
-
*/
|
|
75
|
-
async getDevicesLastBehaviorTask(params) {
|
|
76
|
-
this.logger.trace(params, 'DeviceBehaviorsRepository::getDevicesLastBehaviorTask started with params');
|
|
77
|
-
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
|
|
78
|
-
const result = await getDevicesLastBehaviorTask(novaDataSource, params, this.logger);
|
|
79
|
-
this.logger.trace(result, 'DeviceBehaviorsRepository::getDevicesLastBehaviorTask result');
|
|
80
|
-
return result;
|
|
81
|
-
}
|
|
82
61
|
/**
|
|
83
62
|
* Create device behavior task
|
|
84
63
|
* @param {CreateDeviceBehaviorTaskParams} params containing information to create a device behavior task
|
|
@@ -117,21 +96,6 @@ export class DeviceBehaviorsRepository extends BaseRepository {
|
|
|
117
96
|
this.logger.trace({ result }, 'DeviceBehaviorsRepository::updateDeviceBehaviorTask result');
|
|
118
97
|
return result;
|
|
119
98
|
}
|
|
120
|
-
/**
|
|
121
|
-
* Get latest device behavior tasks
|
|
122
|
-
* @param {GetLatestDeviceBehaviorTasksParams} params containing information to get latest device behavior tasks
|
|
123
|
-
* - params.filters.clientId: The client id
|
|
124
|
-
* - params.filters.type: The device behavior type
|
|
125
|
-
* - params.filters.status: The task status
|
|
126
|
-
* @returns The latest device behavior tasks list
|
|
127
|
-
*/
|
|
128
|
-
async getLatestDeviceBehaviorTasks(params) {
|
|
129
|
-
this.logger.trace(params, 'DeviceBehaviorsRepository::getLatestDeviceBehaviorTasks started with params');
|
|
130
|
-
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
|
|
131
|
-
const result = await getLatestDeviceBehaviorTasks(novaDataSource, params, this.logger);
|
|
132
|
-
this.logger.trace(result, 'DeviceBehaviorsRepository::getLatestDeviceBehaviorTasks result');
|
|
133
|
-
return result;
|
|
134
|
-
}
|
|
135
99
|
/**
|
|
136
100
|
* Upsert device behavior
|
|
137
101
|
* @param {UpsertDeviceBehaviorParams} params containing information to upsert a device behavior
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/deviceBehaviors/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/deviceBehaviors/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EntityTag } from '../../entities';
|
|
2
|
+
export const deleteEntityTagById = async (novaDataSource, id, logger) => {
|
|
3
|
+
if (!id) {
|
|
4
|
+
logger.warn('EntityTagsRepository::deleteEntityTagById missing required id parameter');
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
return novaDataSource.safeQuery(async (dataSource) => {
|
|
8
|
+
const entityTagsRepository = dataSource.getRepository(EntityTag);
|
|
9
|
+
const result = await entityTagsRepository.delete(id);
|
|
10
|
+
return result.affected > 0;
|
|
11
|
+
}, 'EntityTagsRepository::deleteEntityTagById');
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=deleteEntityTagById.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteEntityTagById.js","sourceRoot":"","sources":["../../../src/repositories/entityTags/deleteEntityTagById.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAI1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,cAA8B,EAC9B,EAAU,EACV,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,EAAE,EAAE;QACP,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;QACtF,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,oBAAoB,GAAG,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAEhE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAEpD,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,2CAA2C,CAAC,CAAA;AACjD,CAAC,CAAA"}
|
|
@@ -38,4 +38,10 @@ export declare class EntityTagsRepository extends BaseRepository {
|
|
|
38
38
|
* @returns {GetEntityTagsResult} The results of the enforcement
|
|
39
39
|
*/
|
|
40
40
|
enforceEntityTagsByEntity(params: EnforceEntityTagsByEntityParams): Promise<EnforceEntityTagsByEntityResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Delete an entity tag by id
|
|
43
|
+
* @param {number} id The id of the entity tag to delete
|
|
44
|
+
* @returns {boolean} Whether the entity tag was deleted
|
|
45
|
+
*/
|
|
46
|
+
deleteEntityTagById(id: number): Promise<boolean>;
|
|
41
47
|
}
|
|
@@ -4,6 +4,7 @@ import { bulkCreateEntityTag } from './bulkCreateEntityTag';
|
|
|
4
4
|
import { bulkDeleteEntityTag } from './bulkDeleteEntityTag';
|
|
5
5
|
import { createEntityTag } from './createEntityTag';
|
|
6
6
|
import { deleteEntityTag } from './deleteEntityTag';
|
|
7
|
+
import { deleteEntityTagById } from './deleteEntityTagById';
|
|
7
8
|
import { enforceEntityTagsByEntity } from './enforceEntityTagsByEntity';
|
|
8
9
|
import { searchEntityTags } from './searchEntityTags';
|
|
9
10
|
export class EntityTagsRepository extends BaseRepository {
|
|
@@ -14,7 +15,7 @@ export class EntityTagsRepository extends BaseRepository {
|
|
|
14
15
|
*/
|
|
15
16
|
async createEntityTag(params) {
|
|
16
17
|
this.logger.trace(params, `EntityTagsRepository::createEntityTag started with params`);
|
|
17
|
-
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger
|
|
18
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
18
19
|
const result = await createEntityTag(novaDataSource, params, this.logger);
|
|
19
20
|
this.logger.trace(result, 'EntityTagsRepository::createEntityTag result');
|
|
20
21
|
return result;
|
|
@@ -26,7 +27,7 @@ export class EntityTagsRepository extends BaseRepository {
|
|
|
26
27
|
*/
|
|
27
28
|
async bulkCreateEntityTag(params) {
|
|
28
29
|
this.logger.trace(params, `EntityTagsRepository::bulkCreateEntityTag started with params`);
|
|
29
|
-
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger
|
|
30
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
30
31
|
const results = await bulkCreateEntityTag(novaDataSource, params, this.logger);
|
|
31
32
|
this.logger.trace(results, 'EntityTagsRepository::bulkCreateEntityTag result');
|
|
32
33
|
return results;
|
|
@@ -38,7 +39,7 @@ export class EntityTagsRepository extends BaseRepository {
|
|
|
38
39
|
*/
|
|
39
40
|
async deleteEntityTag(params) {
|
|
40
41
|
this.logger.trace(params, `EntityTagsRepository::deleteEntityTag started with params`);
|
|
41
|
-
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger
|
|
42
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
42
43
|
const result = await deleteEntityTag(novaDataSource, params, this.logger);
|
|
43
44
|
this.logger.trace({ wasDeleted: result }, 'EntityTagsRepository::deleteEntityTag result');
|
|
44
45
|
return result;
|
|
@@ -62,7 +63,7 @@ export class EntityTagsRepository extends BaseRepository {
|
|
|
62
63
|
*/
|
|
63
64
|
async bulkDeleteEntityTag(params) {
|
|
64
65
|
this.logger.trace(params, `EntityTagsRepository::bulkDeleteEntityTag started with params`);
|
|
65
|
-
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger
|
|
66
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
66
67
|
const wasDeleted = await bulkDeleteEntityTag(novaDataSource, params, this.logger);
|
|
67
68
|
this.logger.trace({ wasDeleted }, 'EntityTagsRepository::bulkDeleteEntityTag result');
|
|
68
69
|
return wasDeleted;
|
|
@@ -74,10 +75,22 @@ export class EntityTagsRepository extends BaseRepository {
|
|
|
74
75
|
*/
|
|
75
76
|
async enforceEntityTagsByEntity(params) {
|
|
76
77
|
this.logger.trace(params, `EntityTagsRepository::enforceEntityTagsByEntity started with params`);
|
|
77
|
-
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger
|
|
78
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
78
79
|
const result = await enforceEntityTagsByEntity(novaDataSource, params, this.logger);
|
|
79
80
|
this.logger.trace(result, 'EntityTagsRepository::enforceEntityTagsByEntity result');
|
|
80
81
|
return result;
|
|
81
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Delete an entity tag by id
|
|
85
|
+
* @param {number} id The id of the entity tag to delete
|
|
86
|
+
* @returns {boolean} Whether the entity tag was deleted
|
|
87
|
+
*/
|
|
88
|
+
async deleteEntityTagById(id) {
|
|
89
|
+
this.logger.trace({ id }, `EntityTagsRepository::deleteEntityTagById started with params`);
|
|
90
|
+
const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger);
|
|
91
|
+
const result = await deleteEntityTagById(novaDataSource, id, this.logger);
|
|
92
|
+
this.logger.trace({ wasDeleted: result }, 'EntityTagsRepository::deleteEntityTagById result');
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
82
95
|
}
|
|
83
96
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/entityTags/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAUrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACtD;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,2DAA2D,CAAC,CAAA;QAEtF,MAAM,cAAc,GAAG,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/entityTags/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { UserDeviceBehaviorTask } from '../../entities';
|
|
2
|
-
import { NovaDataSource } from '../../novaDataSource';
|
|
3
|
-
import { GettDevicesLastBehaviorTaskParams } from '../../types/deviceBehaviors';
|
|
4
|
-
import { Logger } from '../../types/logger';
|
|
5
|
-
export declare const getDevicesLastBehaviorTask: (novaDataSource: NovaDataSource, params: GettDevicesLastBehaviorTaskParams, logger: Logger) => Promise<UserDeviceBehaviorTask[]>;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { UserDeviceBehaviorTask } from '../../entities';
|
|
2
|
-
export const getDevicesLastBehaviorTask = async (novaDataSource, params, logger) => {
|
|
3
|
-
if (!params?.filters?.imeiList?.length) {
|
|
4
|
-
logger.warn({ params }, 'DeviceBehaviorsRepository::getDevicesLastBehaviorTask - missing required parameters');
|
|
5
|
-
return [];
|
|
6
|
-
}
|
|
7
|
-
// Force the query to run on master or slave
|
|
8
|
-
const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
|
|
9
|
-
return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
|
|
10
|
-
const deviceBehaviorsRepository = dataSource.getRepository(UserDeviceBehaviorTask);
|
|
11
|
-
let queryBuilder = deviceBehaviorsRepository.createQueryBuilder('userDeviceBehaviorTask');
|
|
12
|
-
if (queryRunner) {
|
|
13
|
-
queryBuilder.setQueryRunner(queryRunner);
|
|
14
|
-
}
|
|
15
|
-
if (params.filters.imeiList?.length) {
|
|
16
|
-
queryBuilder = queryBuilder.andWhere('userDeviceBehaviorTask.imei IN (:...imeiList)', {
|
|
17
|
-
imeiList: params.filters.imeiList,
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
if (params.filters.status) {
|
|
21
|
-
queryBuilder = queryBuilder.andWhere('userDeviceBehaviorTask.status = :status', {
|
|
22
|
-
status: params.filters.status,
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
if (params.filters.deviceBehaviorIdList?.length) {
|
|
26
|
-
queryBuilder = queryBuilder.andWhere('userDeviceBehaviorTask.deviceBehaviorId IN (:...deviceBehaviorIdList)', {
|
|
27
|
-
deviceBehaviorIdList: params.filters.deviceBehaviorIdList,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
queryBuilder.andWhere(subQuery => {
|
|
31
|
-
const subQueryAlias = subQuery
|
|
32
|
-
.subQuery()
|
|
33
|
-
.select('MAX(modifiedAt)')
|
|
34
|
-
.from(UserDeviceBehaviorTask, 'subTask')
|
|
35
|
-
.where('subTask.imei = userDeviceBehaviorTask.imei')
|
|
36
|
-
.getQuery();
|
|
37
|
-
return `userDeviceBehaviorTask.modifiedAt = (${subQueryAlias})`;
|
|
38
|
-
});
|
|
39
|
-
queryBuilder = queryBuilder.orderBy('userDeviceBehaviorTask.modifiedAt', 'DESC');
|
|
40
|
-
if (params?.pagingOptions?.offset) {
|
|
41
|
-
queryBuilder = queryBuilder.offset(params?.pagingOptions?.offset);
|
|
42
|
-
}
|
|
43
|
-
queryBuilder = queryBuilder.limit(params?.pagingOptions?.limit ?? 100);
|
|
44
|
-
const result = await queryBuilder.getMany();
|
|
45
|
-
return result;
|
|
46
|
-
}, 'DeviceBehaviorsRepository::getDevicesLastBehaviorTask', dbQueryRunner);
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=getDevicesLastBehaviorTask.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getDevicesLastBehaviorTask.js","sourceRoot":"","sources":["../../../src/repositories/deviceBehaviors/getDevicesLastBehaviorTask.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAKvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,cAA8B,EAC9B,MAAyC,EACzC,MAAc,EACqB,EAAE;IACrC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;QACtC,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,qFAAqF,CACtF,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EACH,UAA0B,EAC1B,WAAyB,EACU,EAAE;QACrC,MAAM,yBAAyB,GAAG,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAA;QAElF,IAAI,YAAY,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;QAEzF,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE;YACnC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,+CAA+C,EAAE;gBACpF,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAClC,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YACzB,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,yCAAyC,EAAE;gBAC9E,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;aAC9B,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,EAAE;YAC/C,YAAY,GAAG,YAAY,CAAC,QAAQ,CAClC,uEAAuE,EACvE;gBACE,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB;aAC1D,CACF,CAAA;SACF;QAED,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,aAAa,GAAG,QAAQ;iBAC3B,QAAQ,EAAE;iBACV,MAAM,CAAC,iBAAiB,CAAC;iBACzB,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC;iBACvC,KAAK,CAAC,4CAA4C,CAAC;iBACnD,QAAQ,EAAE,CAAA;YACb,OAAO,wCAAwC,aAAa,GAAG,CAAA;QACjE,CAAC,CAAC,CAAA;QAEF,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAA;QAEhF,IAAI,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE;YACjC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;SAClE;QAED,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,GAAG,CAAC,CAAA;QAEtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAA;IACf,CAAC,EACD,uDAAuD,EACvD,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { NovaDataSource } from '../../novaDataSource';
|
|
2
|
-
import { GetLatestDeviceBehaviorTasksParams, GetLatestDeviceBehaviorTasksResult } from '../../types/deviceBehaviors';
|
|
3
|
-
import { Logger } from '../../types/logger';
|
|
4
|
-
export declare const getLatestDeviceBehaviorTasks: (novaDataSource: NovaDataSource, params: GetLatestDeviceBehaviorTasksParams, logger: Logger) => Promise<GetLatestDeviceBehaviorTasksResult[]>;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { UserDeviceBehaviorTask } from '../../entities';
|
|
2
|
-
import { binaryBufferToUuidString } from '../../utils/uuidHelpers';
|
|
3
|
-
export const getLatestDeviceBehaviorTasks = async (novaDataSource, params, logger) => {
|
|
4
|
-
if (!params?.filters?.clientId && !params?.filters?.type && !params?.filters?.status) {
|
|
5
|
-
logger.warn({ params }, 'DeviceBehaviorsRepository::getLatestDeviceBehaviorTasks - missing required parameters');
|
|
6
|
-
return [];
|
|
7
|
-
}
|
|
8
|
-
// Force the query to run on master or slave
|
|
9
|
-
const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
|
|
10
|
-
return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
|
|
11
|
-
const deviceBehaviorsRepository = dataSource.getRepository(UserDeviceBehaviorTask);
|
|
12
|
-
const query = `SELECT sub.imei AS imei,
|
|
13
|
-
sub.name AS name,
|
|
14
|
-
sub.description AS description,
|
|
15
|
-
sub.modifiedAt AS modifiedAt,
|
|
16
|
-
sub.taskId AS taskId
|
|
17
|
-
FROM (
|
|
18
|
-
SELECT userDeviceBehaviorTask.imei AS imei,
|
|
19
|
-
deviceBehavior.name as name,
|
|
20
|
-
deviceBehavior.description as description,
|
|
21
|
-
userDeviceBehaviorTask.modifiedAt AS modifiedAt,
|
|
22
|
-
userDeviceBehaviorTask.id AS taskId,
|
|
23
|
-
RANK() OVER (PARTITION BY userDeviceBehaviorTask.imei ORDER BY userDeviceBehaviorTask.modifiedAt DESC) AS rk
|
|
24
|
-
FROM userDeviceBehaviorTask
|
|
25
|
-
INNER JOIN deviceBehavior ON userDeviceBehaviorTask.deviceBehaviorId = deviceBehavior.id AND deviceBehavior.type = ?
|
|
26
|
-
WHERE userDeviceBehaviorTask.clientId = ? AND userDeviceBehaviorTask.status = ?
|
|
27
|
-
) AS sub
|
|
28
|
-
WHERE sub.rk = 1`;
|
|
29
|
-
const result = queryRunner
|
|
30
|
-
? await queryRunner.query(query, [
|
|
31
|
-
params.filters.type,
|
|
32
|
-
params.filters.clientId,
|
|
33
|
-
params.filters.status,
|
|
34
|
-
])
|
|
35
|
-
: await deviceBehaviorsRepository.query(query, [
|
|
36
|
-
params.filters.type,
|
|
37
|
-
params.filters.clientId,
|
|
38
|
-
params.filters.status,
|
|
39
|
-
]);
|
|
40
|
-
return result.map(item => ({
|
|
41
|
-
imei: item.imei,
|
|
42
|
-
name: item.name,
|
|
43
|
-
description: item.description,
|
|
44
|
-
modifiedAt: item.modifiedAt,
|
|
45
|
-
taskId: binaryBufferToUuidString(item.taskId),
|
|
46
|
-
}));
|
|
47
|
-
}, 'DeviceBehaviorsRepository::getLatestDeviceBehaviorTasks', dbQueryRunner);
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=getLatestDeviceBehaviorTasks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getLatestDeviceBehaviorTasks.js","sourceRoot":"","sources":["../../../src/repositories/deviceBehaviors/getLatestDeviceBehaviorTasks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAOvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAC/C,cAA8B,EAC9B,MAA0C,EAC1C,MAAc,EACiC,EAAE;IACjD,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QACpF,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,uFAAuF,CACxF,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EACH,UAA0B,EAC1B,WAAyB,EACsB,EAAE;QACjD,MAAM,yBAAyB,GAAG,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAA;QAElF,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;qCAgBiB,CAAA;QAE/B,MAAM,MAAM,GAAG,WAAW;YACxB,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC7B,MAAM,CAAC,OAAO,CAAC,IAAI;gBACnB,MAAM,CAAC,OAAO,CAAC,QAAQ;gBACvB,MAAM,CAAC,OAAO,CAAC,MAAM;aACtB,CAAC;YACJ,CAAC,CAAC,MAAM,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC3C,MAAM,CAAC,OAAO,CAAC,IAAI;gBACnB,MAAM,CAAC,OAAO,CAAC,QAAQ;gBACvB,MAAM,CAAC,OAAO,CAAC,MAAM;aACtB,CAAC,CAAA;QAEN,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC;SAC9C,CAAC,CAAC,CAAA;IACL,CAAC,EACD,yDAAyD,EACzD,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
|