@spytecgps/nova-orm 1.0.115 → 1.0.117

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 (59) hide show
  1. package/dist/entities/beaconBleMesh.d.ts +11 -0
  2. package/dist/entities/beaconBleMesh.js +63 -0
  3. package/dist/entities/beaconBleMesh.js.map +1 -0
  4. package/dist/entities/bleMesh.d.ts +15 -0
  5. package/dist/entities/bleMesh.js +74 -0
  6. package/dist/entities/bleMesh.js.map +1 -0
  7. package/dist/entities/deviceBleMesh.d.ts +14 -0
  8. package/dist/entities/deviceBleMesh.js +77 -0
  9. package/dist/entities/deviceBleMesh.js.map +1 -0
  10. package/dist/entities/index.d.ts +4 -1
  11. package/dist/entities/index.js +4 -1
  12. package/dist/entities/index.js.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/repositories/bleMesh/addBeaconsToBLEMesh.d.ts +5 -0
  15. package/dist/repositories/bleMesh/addBeaconsToBLEMesh.js +22 -0
  16. package/dist/repositories/bleMesh/addBeaconsToBLEMesh.js.map +1 -0
  17. package/dist/repositories/bleMesh/addDevicesToBLEMesh.d.ts +5 -0
  18. package/dist/repositories/bleMesh/addDevicesToBLEMesh.js +37 -0
  19. package/dist/repositories/bleMesh/addDevicesToBLEMesh.js.map +1 -0
  20. package/dist/repositories/bleMesh/createBLEMesh.d.ts +5 -0
  21. package/dist/repositories/bleMesh/createBLEMesh.js +19 -0
  22. package/dist/repositories/bleMesh/createBLEMesh.js.map +1 -0
  23. package/dist/repositories/bleMesh/getBLEMeshes.d.ts +4 -0
  24. package/dist/repositories/bleMesh/getBLEMeshes.js +46 -0
  25. package/dist/repositories/bleMesh/getBLEMeshes.js.map +1 -0
  26. package/dist/repositories/bleMesh/index.d.ts +95 -0
  27. package/dist/repositories/bleMesh/index.js +158 -0
  28. package/dist/repositories/bleMesh/index.js.map +1 -0
  29. package/dist/repositories/bleMesh/removeBLEMesh.d.ts +4 -0
  30. package/dist/repositories/bleMesh/removeBLEMesh.js +22 -0
  31. package/dist/repositories/bleMesh/removeBLEMesh.js.map +1 -0
  32. package/dist/repositories/bleMesh/removeBeaconsFromBLEMesh.d.ts +4 -0
  33. package/dist/repositories/bleMesh/removeBeaconsFromBLEMesh.js +24 -0
  34. package/dist/repositories/bleMesh/removeBeaconsFromBLEMesh.js.map +1 -0
  35. package/dist/repositories/bleMesh/removeDevicesFromBLEMesh.d.ts +4 -0
  36. package/dist/repositories/bleMesh/removeDevicesFromBLEMesh.js +25 -0
  37. package/dist/repositories/bleMesh/removeDevicesFromBLEMesh.js.map +1 -0
  38. package/dist/repositories/bleMesh/updateBLEMesh.d.ts +4 -0
  39. package/dist/repositories/bleMesh/updateBLEMesh.js +32 -0
  40. package/dist/repositories/bleMesh/updateBLEMesh.js.map +1 -0
  41. package/dist/repositories/bleMesh/updateDevicesBLEMesh.d.ts +4 -0
  42. package/dist/repositories/bleMesh/updateDevicesBLEMesh.js +30 -0
  43. package/dist/repositories/bleMesh/updateDevicesBLEMesh.js.map +1 -0
  44. package/dist/repositories/bleMeshConfiguration/index.d.ts +3 -0
  45. package/dist/repositories/bleMeshConfiguration/index.js +3 -0
  46. package/dist/repositories/bleMeshConfiguration/index.js.map +1 -1
  47. package/dist/repositories/index.d.ts +2 -1
  48. package/dist/repositories/index.js +2 -1
  49. package/dist/repositories/index.js.map +1 -1
  50. package/dist/types/bleMesh.d.ts +74 -0
  51. package/dist/types/bleMesh.js +2 -0
  52. package/dist/types/bleMesh.js.map +1 -0
  53. package/dist/types/enums.d.ts +5 -0
  54. package/dist/types/enums.js +6 -0
  55. package/dist/types/enums.js.map +1 -1
  56. package/dist/types/index.d.ts +2 -1
  57. package/dist/types/index.js +2 -1
  58. package/dist/types/index.js.map +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import { BeaconBleMesh } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { AddBeaconsToBLEMeshParams } from '../../types/bleMesh';
4
+ import { Logger } from '../../types/logger';
5
+ export declare const addBeaconsToBLEMesh: (novaDataSource: NovaDataSource, params: AddBeaconsToBLEMeshParams, logger: Logger) => Promise<BeaconBleMesh[]>;
@@ -0,0 +1,22 @@
1
+ import { BeaconBleMesh } from '../../entities';
2
+ export const addBeaconsToBLEMesh = async (novaDataSource, params, logger) => {
3
+ if (!params?.beacons?.length ||
4
+ params?.beacons?.some(b => !b.bleMac) ||
5
+ !params?.bleMeshId ||
6
+ !params.clientId) {
7
+ logger.warn({ params }, 'BLEMeshRepository::addBeaconsToBLEMesh missing required parameters');
8
+ return null;
9
+ }
10
+ return novaDataSource.safeQuery(async (dataSource) => {
11
+ const beaconBleMeshRepository = dataSource.getRepository(BeaconBleMesh);
12
+ const now = new Date();
13
+ const result = await beaconBleMeshRepository.save(params.beacons.map(b => ({
14
+ ...b,
15
+ createdAt: now,
16
+ clientId: params.clientId,
17
+ bleMeshId: params.bleMeshId,
18
+ })));
19
+ return result;
20
+ }, 'BLEMeshRepository::addBeaconsToBLEMesh');
21
+ };
22
+ //# sourceMappingURL=addBeaconsToBLEMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addBeaconsToBLEMesh.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/addBeaconsToBLEMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAK9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,cAA8B,EAC9B,MAAiC,EACjC,MAAc,EACY,EAAE;IAC5B,IACE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM;QACxB,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrC,CAAC,MAAM,EAAE,SAAS;QAClB,CAAC,MAAM,CAAC,QAAQ,EAChB;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,oEAAoE,CAAC,CAAA;QAC7F,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAA4B,EAAE;QAC7F,MAAM,uBAAuB,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAEvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAC/C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvB,GAAG,CAAC;YACJ,SAAS,EAAE,GAAG;YACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC,CACJ,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,wCAAwC,CAAC,CAAA;AAC9C,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { DeviceBleMesh } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { AddDevicesToBLEMeshParams } from '../../types/bleMesh';
4
+ import { Logger } from '../../types/logger';
5
+ export declare const addDevicesToBLEMesh: (novaDataSource: NovaDataSource, params: AddDevicesToBLEMeshParams, logger: Logger) => Promise<DeviceBleMesh[]>;
@@ -0,0 +1,37 @@
1
+ import { In } from 'typeorm';
2
+ import { Device, DeviceBleMesh } from '../../entities';
3
+ export const addDevicesToBLEMesh = async (novaDataSource, params, logger) => {
4
+ if (!params?.imeis?.length || !params.clientId || !params.bleMeshId) {
5
+ logger.warn({ params }, 'BLEMeshRepository::addDevicesToBLEMesh missing required parameters');
6
+ return null;
7
+ }
8
+ return novaDataSource.safeQuery(async (dataSource) => {
9
+ const deviceBleMeshRepository = dataSource.getRepository(DeviceBleMesh);
10
+ const now = new Date();
11
+ const deviceRepo = dataSource.getRepository(Device);
12
+ const devices = await deviceRepo.find({
13
+ where: {
14
+ clientId: params.clientId,
15
+ imei: In(params.imeis),
16
+ },
17
+ });
18
+ const result = await deviceBleMeshRepository.save(params.imeis
19
+ .map(imei => {
20
+ const device = devices.find(dev => dev.imei === imei);
21
+ if (device == null) {
22
+ logger.warn({ imei }, 'BLEMeshRepository::addDevicesToBLEMesh - device not found');
23
+ return null;
24
+ }
25
+ return {
26
+ deviceId: device.id,
27
+ bleMeshId: params.bleMeshId,
28
+ clientId: params.clientId,
29
+ createdAt: now,
30
+ modifiedAt: now,
31
+ };
32
+ })
33
+ .filter(d => d != null));
34
+ return result;
35
+ }, 'BLEMeshRepository::addDevicesToBLEMesh');
36
+ };
37
+ //# sourceMappingURL=addDevicesToBLEMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addDevicesToBLEMesh.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/addDevicesToBLEMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAKtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,cAA8B,EAC9B,MAAiC,EACjC,MAAc,EACY,EAAE;IAC5B,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACnE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,oEAAoE,CAAC,CAAA;QAC7F,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAA4B,EAAE;QAC7F,MAAM,uBAAuB,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAEvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;YACpC,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aACvB;SACF,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAC/C,MAAM,CAAC,KAAK;aACT,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YACrD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,2DAA2D,CAAC,CAAA;gBAClF,OAAO,IAAI,CAAA;aACZ;YACD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB,CAAA;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAC1B,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,wCAAwC,CAAC,CAAA;AAC9C,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { BLEMesh } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { CreateBLEMeshParams } from '../../types/bleMesh';
4
+ import { Logger } from '../../types/logger';
5
+ export declare const createBLEMesh: (novaDataSource: NovaDataSource, params: CreateBLEMeshParams, logger: Logger) => Promise<BLEMesh>;
@@ -0,0 +1,19 @@
1
+ import { BLEMesh } from '../../entities';
2
+ export const createBLEMesh = async (novaDataSource, params, logger) => {
3
+ if (!params?.name || !params?.lat || !params?.lon || !params.clientId || !params.address) {
4
+ logger.warn({ params }, 'BLEMeshRepository::createBLEMesh missing required parameters');
5
+ return null;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const bleMeshRepository = dataSource.getRepository(BLEMesh);
9
+ const now = new Date();
10
+ const newBleMesh = {
11
+ ...params,
12
+ createdAt: now,
13
+ modifiedAt: now,
14
+ };
15
+ const result = await bleMeshRepository.save(newBleMesh);
16
+ return result;
17
+ }, 'BLEMeshRepository::createBLEMesh');
18
+ };
19
+ //# sourceMappingURL=createBLEMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBLEMesh.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/createBLEMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAKxC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,cAA8B,EAC9B,MAA2B,EAC3B,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACxF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8DAA8D,CAAC,CAAA;QACvF,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE3D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,MAAM,UAAU,GAAG;YACjB,GAAG,MAAM;YACT,SAAS,EAAE,GAAG;YACd,UAAU,EAAE,GAAG;SAChB,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAEvD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,kCAAkC,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { GetBLEMeshesParams, GetBLEMeshesResult } from '../../types/bleMesh';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const getBLEMeshes: (novaDataSource: NovaDataSource, params: GetBLEMeshesParams, logger: Logger) => Promise<GetBLEMeshesResult>;
@@ -0,0 +1,46 @@
1
+ import { BLEMesh } from '../../entities';
2
+ export const getBLEMeshes = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.clientId && !params?.filters?.bleMeshIds?.length) {
4
+ logger.warn({ params }, 'BLEMeshRepository::getBLEMesh missing required parameters');
5
+ return null;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
8
+ const bleMeshRepository = dataSource.getRepository(BLEMesh);
9
+ let queryBuilder = bleMeshRepository.createQueryBuilder('bleMesh');
10
+ if (queryRunner) {
11
+ queryBuilder.setQueryRunner(queryRunner);
12
+ }
13
+ if (params.filters.clientId) {
14
+ queryBuilder = queryBuilder.andWhere('bleMesh.clientId = :clientId', {
15
+ clientId: params.filters.clientId,
16
+ });
17
+ }
18
+ if (params.filters.bleMeshIds?.length) {
19
+ queryBuilder = queryBuilder.andWhere('bleMesh.id IN (:...bleMeshIds)', {
20
+ bleMeshIds: params.filters.bleMeshIds,
21
+ });
22
+ }
23
+ if (params?.projectionOptions?.withBeacons) {
24
+ queryBuilder = queryBuilder.leftJoinAndSelect('bleMesh.beacons', 'beacon');
25
+ }
26
+ if (params?.projectionOptions?.withDevices) {
27
+ queryBuilder = queryBuilder
28
+ .leftJoinAndSelect('bleMesh.devices', 'deviceMesh')
29
+ .leftJoinAndSelect('deviceMesh.device', 'deviceInMesh');
30
+ }
31
+ const pageSize = params.pagingOptions?.pageSize ?? 100;
32
+ const pageIndex = params.pagingOptions?.pageIndex ?? 0;
33
+ queryBuilder = queryBuilder.limit(pageSize).offset(pageSize * pageIndex);
34
+ let bleMeshes;
35
+ let count = undefined;
36
+ if (params?.projectionOptions?.withTotalCount) {
37
+ ;
38
+ [bleMeshes, count] = await queryBuilder.getManyAndCount();
39
+ }
40
+ else {
41
+ bleMeshes = await queryBuilder.getMany();
42
+ }
43
+ return { bleMeshes, totalCount: count };
44
+ }, 'BLEMeshRepository::getBLEMesh');
45
+ };
46
+ //# sourceMappingURL=getBLEMeshes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBLEMeshes.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/getBLEMeshes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAKxC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,cAA8B,EAC9B,MAA0B,EAC1B,MAAc,EACe,EAAE;IAC/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;QACtE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,2DAA2D,CAAC,CAAA;QACpF,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAA+B,EAAE;QAC3F,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE3D,IAAI,YAAY,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAElE,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,8BAA8B,EAAE;gBACnE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAClC,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE;YACrC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,gCAAgC,EAAE;gBACrE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;aACtC,CAAC,CAAA;SACH;QAED,IAAI,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE;YAC1C,YAAY,GAAG,YAAY,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;SAC3E;QAED,IAAI,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE;YAC1C,YAAY,GAAG,YAAY;iBACxB,iBAAiB,CAAC,iBAAiB,EAAE,YAAY,CAAC;iBAClD,iBAAiB,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA;SAC1D;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,GAAG,CAAA;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,CAAA;QAEtD,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;QAExE,IAAI,SAAoB,CAAA;QACxB,IAAI,KAAK,GAAW,SAAS,CAAA;QAC7B,IAAI,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE;YAC7C,CAAC;YAAA,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;SAC3D;aAAM;YACL,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;SACzC;QAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;IACzC,CAAC,EACD,+BAA+B,CAChC,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,95 @@
1
+ import { BeaconBleMesh, BLEMesh, DeviceBleMesh } from '../../entities';
2
+ import { AddBeaconsToBLEMeshParams, AddDevicesToBLEMeshParams, CreateBLEMeshParams, GetBLEMeshesParams, GetBLEMeshesResult, RemoveBeaconsFromBLEMeshParams, RemoveBLEMeshParams, RemoveDevicesFromBLEMeshParams, UpdateBLEMeshParams, UpdateDevicesBLEMeshParams } from '../../types/bleMesh';
3
+ import { BaseRepository } from '../baseRepository';
4
+ export declare class BLEMeshRepository extends BaseRepository {
5
+ /**
6
+ * Create a BLE Mesh
7
+ * @param params params containing information to create BLE Mesh
8
+ * params.name: the name of the BLE Mesh, required
9
+ * params.clientId: the client ID, required
10
+ * params.address: the address, required
11
+ * params.lon: the longitude, required
12
+ * params.lat: the latitude, required
13
+ * params.bleMeshGroupId: the BLE Mesh Group ID, optional
14
+ * @returns Promise<BLEMesh> the created BLE Mesh
15
+ **/
16
+ createBLEMesh(params: CreateBLEMeshParams): Promise<BLEMesh>;
17
+ /**
18
+ * Get BLE Meshes
19
+ * @param params params containing information to get BLE Mesh with filters
20
+ * At least one of the following filters is required:
21
+ * params.filters.clientId: the client ID, optional
22
+ * params.filters.bleMeshGroupIds: the BLE Mesh Group IDs, optional
23
+ * params.filters.bleMeshIds: the BLE Mesh IDs, optional
24
+ * params.projectionOptions.withMeshGroups: whether to include Mesh Groups, optional
25
+ * params.projectionOptions.withBeacons: whether to include Beacons, optional
26
+ * params.projectionOptions.withDevices: whether to include Devices, optional
27
+ * @returns Promise<GetBLEMeshesResult> the BLE Meshes result
28
+ **/
29
+ getBLEMeshes(params: GetBLEMeshesParams): Promise<GetBLEMeshesResult>;
30
+ /**
31
+ * Add BLE beacons to a BLE Mesh
32
+ * @param params params containing information to add BLE beacons to a BLE Mesh
33
+ * params.clientId: the client ID, required
34
+ * params.bleMeshId: the BLE Mesh ID, required
35
+ * params.beacons: the Beacons to add, required
36
+ * @returns Promise<BeaconBleMesh[]> the created Beacon BLE Mesh
37
+ **/
38
+ addBeaconsToBLEMesh(params: AddBeaconsToBLEMeshParams): Promise<BeaconBleMesh[]>;
39
+ /**
40
+ * Add BLE devices to a BLE Mesh
41
+ * @param params params containing information to add BLE devices to a BLE Mesh
42
+ * params.clientId: the client ID, required
43
+ * params.devices: the Devices to add, required
44
+ * @returns Promise<DeviceBleMesh[]> the created Device BLE Mesh
45
+ **/
46
+ addDevicesToBLEMesh(params: AddDevicesToBLEMeshParams): Promise<DeviceBleMesh[]>;
47
+ /**
48
+ * Remove BLE beacons from a BLE Mesh
49
+ * @param params params containing information to remove BLE beacons from a BLE Mesh
50
+ * params.clientId: the client ID, required
51
+ * params.bleMeshId: the BLE Mesh ID, required
52
+ * params.beaconIds: the Beacons to remove, required
53
+ * @returns Promise<boolean> true if the beacons were removed
54
+ **/
55
+ removeBeaconsFromBLEMesh(params: RemoveBeaconsFromBLEMeshParams): Promise<boolean>;
56
+ /**
57
+ * Remove BLE devices from a BLE Mesh
58
+ * @param params params containing information to remove BLE devices from a BLE Mesh
59
+ * params.clientId: the client ID, required
60
+ * params.deviceIds: the Devices to remove, required
61
+ * params.bleMeshId: the BLE Mesh ID, optional if bleMeshGroupId is provided
62
+ * params.bleMeshGroupId: the BLE Mesh Group ID, optional if bleMeshId is provided
63
+ * @returns Promise<boolean> true if the devices were removed
64
+ **/
65
+ removeDevicesFromBLEMesh(params: RemoveDevicesFromBLEMeshParams): Promise<boolean>;
66
+ /**
67
+ * Update a BLE Mesh
68
+ * @param params params containing information to update BLE Mesh
69
+ * params.filters.id: the BLE Mesh ID, required
70
+ * params.values.name: the name of the BLE Mesh, optional
71
+ * params.values.address: the address, optional
72
+ * params.values.lon: the longitude, optional
73
+ * params.values.lat: the latitude, optional
74
+ * params.values.bleMeshGroupId: the BLE Mesh Group ID, optional
75
+ * @returns Promise<boolean> true if the BLE Mesh was updated
76
+ **/
77
+ updateBLEMesh(params: UpdateBLEMeshParams): Promise<boolean>;
78
+ /**
79
+ * Update BLE devices from a BLE Mesh
80
+ * @param params params containing information to update BLE devices from a BLE Mesh
81
+ * params.filters.clientId: the client ID, required
82
+ * params.filters.imeis: the Devices IMEIs, required
83
+ * params.values.status: the status to update, required
84
+ * @returns Promise<boolean> true if the devices were updated
85
+ * */
86
+ updateDevicesBLEMesh(params: UpdateDevicesBLEMeshParams): Promise<boolean>;
87
+ /**
88
+ * Remove a BLE Mesh
89
+ * @param params params containing information to remove BLE Mesh
90
+ * params.id: the BLE Mesh ID, required
91
+ * params.clientId: the client ID, required
92
+ * @returns Promise<boolean> true if the BLE Mesh was removed
93
+ **/
94
+ removeBLEMesh(params: RemoveBLEMeshParams): Promise<boolean>;
95
+ }
@@ -0,0 +1,158 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { addBeaconsToBLEMesh } from './addBeaconsToBLEMesh';
4
+ import { addDevicesToBLEMesh } from './addDevicesToBLEMesh';
5
+ import { createBLEMesh } from './createBLEMesh';
6
+ import { getBLEMeshes } from './getBLEMeshes';
7
+ import { removeBeaconsFromBLEMesh } from './removeBeaconsFromBLEMesh';
8
+ import { removeBLEMesh } from './removeBLEMesh';
9
+ import { removeDevicesFromBLEMesh } from './removeDevicesFromBLEMesh';
10
+ import { updateBLEMesh } from './updateBLEMesh';
11
+ import { updateDevicesBLEMesh } from './updateDevicesBLEMesh';
12
+ export class BLEMeshRepository extends BaseRepository {
13
+ /**
14
+ * Create a BLE Mesh
15
+ * @param params params containing information to create BLE Mesh
16
+ * params.name: the name of the BLE Mesh, required
17
+ * params.clientId: the client ID, required
18
+ * params.address: the address, required
19
+ * params.lon: the longitude, required
20
+ * params.lat: the latitude, required
21
+ * params.bleMeshGroupId: the BLE Mesh Group ID, optional
22
+ * @returns Promise<BLEMesh> the created BLE Mesh
23
+ **/
24
+ async createBLEMesh(params) {
25
+ this.logger.trace(params, 'BLEMeshRepository::createBLEMesh started with params');
26
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
27
+ const result = await createBLEMesh(novaDataSource, params, this.logger);
28
+ this.logger.trace(result, 'BLEMeshRepository::createBLEMesh result');
29
+ return result;
30
+ }
31
+ /**
32
+ * Get BLE Meshes
33
+ * @param params params containing information to get BLE Mesh with filters
34
+ * At least one of the following filters is required:
35
+ * params.filters.clientId: the client ID, optional
36
+ * params.filters.bleMeshGroupIds: the BLE Mesh Group IDs, optional
37
+ * params.filters.bleMeshIds: the BLE Mesh IDs, optional
38
+ * params.projectionOptions.withMeshGroups: whether to include Mesh Groups, optional
39
+ * params.projectionOptions.withBeacons: whether to include Beacons, optional
40
+ * params.projectionOptions.withDevices: whether to include Devices, optional
41
+ * @returns Promise<GetBLEMeshesResult> the BLE Meshes result
42
+ **/
43
+ async getBLEMeshes(params) {
44
+ this.logger.trace(params, 'BLEMeshRepository::getBLEMesh started with params');
45
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
46
+ const result = await getBLEMeshes(novaDataSource, params, this.logger);
47
+ this.logger.trace(result, 'BLEMeshRepository::getBLEMesh result');
48
+ return result;
49
+ }
50
+ /**
51
+ * Add BLE beacons to a BLE Mesh
52
+ * @param params params containing information to add BLE beacons to a BLE Mesh
53
+ * params.clientId: the client ID, required
54
+ * params.bleMeshId: the BLE Mesh ID, required
55
+ * params.beacons: the Beacons to add, required
56
+ * @returns Promise<BeaconBleMesh[]> the created Beacon BLE Mesh
57
+ **/
58
+ async addBeaconsToBLEMesh(params) {
59
+ this.logger.trace(params, 'BLEMeshRepository::addBeaconsToBLEMesh started with params');
60
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
61
+ const result = await addBeaconsToBLEMesh(novaDataSource, params, this.logger);
62
+ this.logger.trace(result, 'BLEMeshRepository::addBeaconsToBLEMesh result');
63
+ return result;
64
+ }
65
+ /**
66
+ * Add BLE devices to a BLE Mesh
67
+ * @param params params containing information to add BLE devices to a BLE Mesh
68
+ * params.clientId: the client ID, required
69
+ * params.devices: the Devices to add, required
70
+ * @returns Promise<DeviceBleMesh[]> the created Device BLE Mesh
71
+ **/
72
+ async addDevicesToBLEMesh(params) {
73
+ this.logger.trace(params, 'BLEMeshRepository::addDevicesToBLEMesh started with params');
74
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
75
+ const result = await addDevicesToBLEMesh(novaDataSource, params, this.logger);
76
+ this.logger.trace(result, 'BLEMeshRepository::addDevicesToBLEMesh result');
77
+ return result;
78
+ }
79
+ /**
80
+ * Remove BLE beacons from a BLE Mesh
81
+ * @param params params containing information to remove BLE beacons from a BLE Mesh
82
+ * params.clientId: the client ID, required
83
+ * params.bleMeshId: the BLE Mesh ID, required
84
+ * params.beaconIds: the Beacons to remove, required
85
+ * @returns Promise<boolean> true if the beacons were removed
86
+ **/
87
+ async removeBeaconsFromBLEMesh(params) {
88
+ this.logger.trace(params, 'BLEMeshRepository::removeBeaconsFromBLEMesh started with params');
89
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
90
+ const result = await removeBeaconsFromBLEMesh(novaDataSource, params, this.logger);
91
+ this.logger.trace({ result }, 'BLEMeshRepository::removeBeaconsFromBLEMesh result');
92
+ return result;
93
+ }
94
+ /**
95
+ * Remove BLE devices from a BLE Mesh
96
+ * @param params params containing information to remove BLE devices from a BLE Mesh
97
+ * params.clientId: the client ID, required
98
+ * params.deviceIds: the Devices to remove, required
99
+ * params.bleMeshId: the BLE Mesh ID, optional if bleMeshGroupId is provided
100
+ * params.bleMeshGroupId: the BLE Mesh Group ID, optional if bleMeshId is provided
101
+ * @returns Promise<boolean> true if the devices were removed
102
+ **/
103
+ async removeDevicesFromBLEMesh(params) {
104
+ this.logger.trace(params, 'BLEMeshRepository::removeDevicesFromBLEMesh started with params');
105
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
106
+ const result = await removeDevicesFromBLEMesh(novaDataSource, params, this.logger);
107
+ this.logger.trace({ result }, 'BLEMeshRepository::removeDevicesFromBLEMesh result');
108
+ return result;
109
+ }
110
+ /**
111
+ * Update a BLE Mesh
112
+ * @param params params containing information to update BLE Mesh
113
+ * params.filters.id: the BLE Mesh ID, required
114
+ * params.values.name: the name of the BLE Mesh, optional
115
+ * params.values.address: the address, optional
116
+ * params.values.lon: the longitude, optional
117
+ * params.values.lat: the latitude, optional
118
+ * params.values.bleMeshGroupId: the BLE Mesh Group ID, optional
119
+ * @returns Promise<boolean> true if the BLE Mesh was updated
120
+ **/
121
+ async updateBLEMesh(params) {
122
+ this.logger.trace(params, 'BLEMeshRepository::updateBLEMesh started with params');
123
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
124
+ const result = await updateBLEMesh(novaDataSource, params, this.logger);
125
+ this.logger.trace({ result }, 'BLEMeshRepository::updateBLEMesh result');
126
+ return result;
127
+ }
128
+ /**
129
+ * Update BLE devices from a BLE Mesh
130
+ * @param params params containing information to update BLE devices from a BLE Mesh
131
+ * params.filters.clientId: the client ID, required
132
+ * params.filters.imeis: the Devices IMEIs, required
133
+ * params.values.status: the status to update, required
134
+ * @returns Promise<boolean> true if the devices were updated
135
+ * */
136
+ async updateDevicesBLEMesh(params) {
137
+ this.logger.trace(params, 'BLEMeshRepository::updateDevicesBLEMesh started with params');
138
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
139
+ const result = await updateDevicesBLEMesh(novaDataSource, params, this.logger);
140
+ this.logger.trace({ result }, 'BLEMeshRepository::updateDevicesBLEMesh result');
141
+ return result;
142
+ }
143
+ /**
144
+ * Remove a BLE Mesh
145
+ * @param params params containing information to remove BLE Mesh
146
+ * params.id: the BLE Mesh ID, required
147
+ * params.clientId: the client ID, required
148
+ * @returns Promise<boolean> true if the BLE Mesh was removed
149
+ **/
150
+ async removeBLEMesh(params) {
151
+ this.logger.trace(params, 'BLEMeshRepository::removeBLEMesh started with params');
152
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
153
+ const result = await removeBLEMesh(novaDataSource, params, this.logger);
154
+ this.logger.trace({ result }, 'BLEMeshRepository::removeBLEMesh result');
155
+ return result;
156
+ }
157
+ }
158
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAarD,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,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IACnD;;;;;;;;;;QAUI;IACJ,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAA;QAEjF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yCAAyC,CAAC,CAAA;QAEpE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,mDAAmD,CAAC,CAAA;QAE9E,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAA;QAEjE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;QAOI;IACJ,KAAK,CAAC,mBAAmB,CAAC,MAAiC;QACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,4DAA4D,CAAC,CAAA;QAEvF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE7E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,+CAA+C,CAAC,CAAA;QAE1E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;QAMI;IACJ,KAAK,CAAC,mBAAmB,CAAC,MAAiC;QACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,4DAA4D,CAAC,CAAA;QAEvF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE7E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,+CAA+C,CAAC,CAAA;QAE1E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;QAOI;IACJ,KAAK,CAAC,wBAAwB,CAAC,MAAsC;QACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iEAAiE,CAAC,CAAA;QAE5F,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAElF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,oDAAoD,CAAC,CAAA;QAEnF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;QAQI;IACJ,KAAK,CAAC,wBAAwB,CAAC,MAAsC;QACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iEAAiE,CAAC,CAAA;QAE5F,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAElF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,oDAAoD,CAAC,CAAA;QAEnF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;QAUI;IACJ,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAA;QAEjF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,yCAAyC,CAAC,CAAA;QAExE,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;SAOK;IACL,KAAK,CAAC,oBAAoB,CAAC,MAAkC;QAC3D,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,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,gDAAgD,CAAC,CAAA;QAE/E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;QAMI;IACJ,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAA;QAEjF,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,2BAA2B,CACjC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,yCAAyC,CAAC,CAAA;QAExE,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { RemoveBLEMeshParams } from '../../types/bleMesh';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const removeBLEMesh: (novaDataSource: NovaDataSource, params: RemoveBLEMeshParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,22 @@
1
+ import { BLEMesh } from '../../entities';
2
+ export const removeBLEMesh = async (novaDataSource, params, logger) => {
3
+ if (!params?.id || !params.clientId) {
4
+ logger.warn({ params }, 'BLEMeshRepository::removeBLEMesh missing required parameters');
5
+ return false;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const bleMeshRepository = dataSource.getRepository(BLEMesh);
9
+ const queryBuilder = bleMeshRepository
10
+ .createQueryBuilder()
11
+ .delete()
12
+ .andWhere('clientId = :clientId', {
13
+ clientId: params.clientId,
14
+ })
15
+ .andWhere('id = :bleMeshId', {
16
+ bleMeshId: params.id,
17
+ });
18
+ const result = await queryBuilder.execute();
19
+ return result.affected > 0;
20
+ }, 'BLEMeshRepository::removeBLEMesh');
21
+ };
22
+ //# sourceMappingURL=removeBLEMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeBLEMesh.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/removeBLEMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAKxC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,cAA8B,EAC9B,MAA2B,EAC3B,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8DAA8D,CAAC,CAAA;QACvF,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE3D,MAAM,YAAY,GAAG,iBAAiB;aACnC,kBAAkB,EAAE;aACpB,MAAM,EAAE;aACR,QAAQ,CAAC,sBAAsB,EAAE;YAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;aACD,QAAQ,CAAC,iBAAiB,EAAE;YAC3B,SAAS,EAAE,MAAM,CAAC,EAAE;SACrB,CAAC,CAAA;QAEJ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,kCAAkC,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { RemoveBeaconsFromBLEMeshParams } from '../../types/bleMesh';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const removeBeaconsFromBLEMesh: (novaDataSource: NovaDataSource, params: RemoveBeaconsFromBLEMeshParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,24 @@
1
+ import { BeaconBleMesh } from '../../entities';
2
+ export const removeBeaconsFromBLEMesh = async (novaDataSource, params, logger) => {
3
+ if (!params?.beaconIds?.length || !params?.bleMeshId || !params.clientId) {
4
+ logger.warn({ params }, 'BLEMeshRepository::removeBeaconsFromBLEMesh missing required parameters');
5
+ return false;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const beaconBleMeshRepository = dataSource.getRepository(BeaconBleMesh);
9
+ let queryBuilder = beaconBleMeshRepository.createQueryBuilder().delete();
10
+ queryBuilder = queryBuilder
11
+ .where('bleMeshId = :bleMeshId', {
12
+ bleMeshId: params.bleMeshId,
13
+ })
14
+ .andWhere('clientId = :clientId', {
15
+ clientId: params.clientId,
16
+ })
17
+ .andWhere('id IN (:...beaconIds)', {
18
+ beaconIds: params.beaconIds,
19
+ });
20
+ const result = await queryBuilder.execute();
21
+ return result.affected > 0;
22
+ }, 'BLEMeshRepository::removeBeaconsFromBLEMesh');
23
+ };
24
+ //# sourceMappingURL=removeBeaconsFromBLEMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeBeaconsFromBLEMesh.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/removeBeaconsFromBLEMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAK9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,cAA8B,EAC9B,MAAsC,EACtC,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACxE,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,yEAAyE,CAC1E,CAAA;QACD,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,uBAAuB,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAEvE,IAAI,YAAY,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAA;QAExE,YAAY,GAAG,YAAY;aACxB,KAAK,CAAC,wBAAwB,EAAE;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;aACD,QAAQ,CAAC,sBAAsB,EAAE;YAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;aACD,QAAQ,CAAC,uBAAuB,EAAE;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAA;QAEJ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,6CAA6C,CAAC,CAAA;AACnD,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { RemoveDevicesFromBLEMeshParams } from '../../types/bleMesh';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const removeDevicesFromBLEMesh: (novaDataSource: NovaDataSource, params: RemoveDevicesFromBLEMeshParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,25 @@
1
+ import { DeviceBleMesh } from '../../entities';
2
+ export const removeDevicesFromBLEMesh = async (novaDataSource, params, logger) => {
3
+ if (!params?.imeis?.length || !params?.bleMeshId || !params.clientId) {
4
+ logger.warn({ params }, 'BLEMeshRepository::removeDevicesFromBLEMesh missing required parameters');
5
+ return false;
6
+ }
7
+ return novaDataSource.safeQuery(async (dataSource) => {
8
+ const deviceBleMeshRepository = dataSource.getRepository(DeviceBleMesh);
9
+ let queryBuilder = deviceBleMeshRepository.createQueryBuilder().delete();
10
+ queryBuilder = queryBuilder
11
+ .andWhere('clientId = :clientId', {
12
+ clientId: params.clientId,
13
+ })
14
+ .where('deviceId IN (SELECT id FROM `device` WHERE imei IN(:imeis) and clientId = :clientId)', {
15
+ imeis: params.imeis,
16
+ clientId: params.clientId,
17
+ })
18
+ .andWhere('bleMeshId = :bleMeshId', {
19
+ bleMeshId: params.bleMeshId,
20
+ });
21
+ const result = await queryBuilder.execute();
22
+ return result.affected > 0;
23
+ }, 'BLEMeshRepository::removeDevicesFromBLEMesh');
24
+ };
25
+ //# sourceMappingURL=removeDevicesFromBLEMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDevicesFromBLEMesh.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/removeDevicesFromBLEMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAK9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,cAA8B,EAC9B,MAAsC,EACtC,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpE,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,yEAAyE,CAC1E,CAAA;QACD,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,uBAAuB,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAEvE,IAAI,YAAY,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAA;QAExE,YAAY,GAAG,YAAY;aACxB,QAAQ,CAAC,sBAAsB,EAAE;YAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;aACD,KAAK,CACJ,sFAAsF,EACtF;YACE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CACF;aACA,QAAQ,CAAC,wBAAwB,EAAE;YAClC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAA;QAEJ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,6CAA6C,CAAC,CAAA;AACnD,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { UpdateBLEMeshParams } from '../../types/bleMesh';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const updateBLEMesh: (novaDataSource: NovaDataSource, params: UpdateBLEMeshParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,32 @@
1
+ import { BLEMesh } from '../../entities';
2
+ export const updateBLEMesh = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.id) {
4
+ logger.warn({ params }, 'BLEMeshRepository::updateBLEMesh missing required parameters');
5
+ return false;
6
+ }
7
+ if (!params?.values?.name &&
8
+ !params?.values?.lat &&
9
+ !params?.values?.lon &&
10
+ !params?.values?.address) {
11
+ logger.warn({ params }, 'BLEMeshRepository::updateBLEMesh missing required parameters');
12
+ return false;
13
+ }
14
+ return novaDataSource.safeQuery(async (dataSource) => {
15
+ const bleMeshRepository = dataSource.getRepository(BLEMesh);
16
+ const now = new Date();
17
+ const result = await bleMeshRepository
18
+ .createQueryBuilder()
19
+ .update(BLEMesh)
20
+ .set({
21
+ address: params.values.address,
22
+ lat: params.values.lat,
23
+ lon: params.values.lon,
24
+ name: params.values.name,
25
+ modifiedAt: now,
26
+ })
27
+ .where('id = :id', { id: params.filters.id })
28
+ .execute();
29
+ return result.affected > 0;
30
+ }, 'BLEMeshRepository::updateBLEMesh');
31
+ };
32
+ //# sourceMappingURL=updateBLEMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateBLEMesh.js","sourceRoot":"","sources":["../../../src/repositories/bleMesh/updateBLEMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAKxC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,cAA8B,EAC9B,MAA2B,EAC3B,MAAc,EACI,EAAE;IACpB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8DAA8D,CAAC,CAAA;QACvF,OAAO,KAAK,CAAA;KACb;IAED,IACE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI;QACrB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;QACpB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;QACpB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EACxB;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8DAA8D,CAAC,CAAA;QACvF,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE3D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,MAAM,MAAM,GAAG,MAAM,iBAAiB;aACnC,kBAAkB,EAAE;aACpB,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC;YACH,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YACtB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YACtB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YACxB,UAAU,EAAE,GAAG;SAChB,CAAC;aACD,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;aAC5C,OAAO,EAAE,CAAA;QAEZ,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,kCAAkC,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { UpdateDevicesBLEMeshParams } from '../../types/bleMesh';
3
+ import { Logger } from '../../types/logger';
4
+ export declare const updateDevicesBLEMesh: (novaDataSource: NovaDataSource, params: UpdateDevicesBLEMeshParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,30 @@
1
+ import { DeviceBleMesh } from '../../entities';
2
+ export const updateDevicesBLEMesh = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.imeis?.length || !params.filters.clientId) {
4
+ logger.warn({ params }, 'BLEMeshRepository::updateBLEMesh missing required parameters');
5
+ return false;
6
+ }
7
+ if (!params?.values?.status) {
8
+ logger.warn({ params }, 'BLEMeshRepository::updateBLEMesh missing required parameters');
9
+ return false;
10
+ }
11
+ return novaDataSource.safeQuery(async (dataSource) => {
12
+ const bleMeshRepository = dataSource.getRepository(DeviceBleMesh);
13
+ const now = new Date();
14
+ const result = await bleMeshRepository
15
+ .createQueryBuilder()
16
+ .update(DeviceBleMesh)
17
+ .set({
18
+ status: params.values.status,
19
+ modifiedAt: now,
20
+ })
21
+ .where('deviceId IN (SELECT id FROM `device` WHERE imei IN(:imeis) and clientId = :clientId)', {
22
+ imeis: params.filters.imeis,
23
+ clientId: params.filters.clientId,
24
+ })
25
+ .andWhere('clientId = :clientId', { clientId: params.filters.clientId })
26
+ .execute();
27
+ return result.affected > 0;
28
+ }, 'BLEMeshRepository::updateBLEMesh');
29
+ };
30
+ //# sourceMappingURL=updateDevicesBLEMesh.js.map