@spytecgps/nova-orm 1.0.113 → 1.0.114

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.
@@ -1,4 +1,4 @@
1
- import { Boundary, EntityTag } from '../../entities';
1
+ import { Boundary, EntityTag, Tag } from '../../entities';
2
2
  export const getBoundariesByClientId = async (novaDataSource, params, logger) => {
3
3
  if (!params.filters.clientId) {
4
4
  logger.warn({ params }, 'BoundariesRepository::getBoundariesByClientId - missing required parameters');
@@ -24,7 +24,30 @@ export const getBoundariesByClientId = async (novaDataSource, params, logger) =>
24
24
  tagIdList: params.filters.tagIdList,
25
25
  });
26
26
  }
27
- const boundaries = await queryBuilder.getMany();
27
+ let boundaries = await queryBuilder.getMany();
28
+ if (params.projectionOptions?.withSecurityGroupTag) {
29
+ //TODO: Refactor this to a common function,
30
+ // change the approach to get the security group tags for all the users in one query,
31
+ // then map them to the users. Target methods: getDevices, getUsers
32
+ const entityTagRepo = dataSource.getRepository(EntityTag);
33
+ boundaries = await Promise.all(boundaries.map(async (boundary) => {
34
+ const entityTagQueryBuilder = entityTagRepo.createQueryBuilder('entityTag');
35
+ if (queryRunner) {
36
+ entityTagQueryBuilder.setQueryRunner(queryRunner);
37
+ }
38
+ const securityGroupEntityTags = await entityTagQueryBuilder
39
+ .where('entityTag.entityId = :entityId AND entityTag.entityType = :entityType', {
40
+ entityId: boundary.id,
41
+ entityType: 'Boundary',
42
+ })
43
+ .innerJoin(Tag, 'tag', `tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)`, { metadata: JSON.stringify({ isSecurityGroup: true }) })
44
+ .getMany();
45
+ return {
46
+ ...boundary,
47
+ securityGroupEntityTags,
48
+ };
49
+ }));
50
+ }
28
51
  return boundaries;
29
52
  }, 'BoundariesRepository::getBoundariesByClientId', dbQueryRunner);
30
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getBoundariesByClientId.js","sourceRoot":"","sources":["../../../src/repositories/boundaries/getBoundariesByClientId.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAKpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,cAA8B,EAC9B,MAAqC,EACrC,MAAc,EACO,EAAE;IACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC5B,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,6EAA6E,CAC9E,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,EAAE,UAA0B,EAAE,WAAyB,EAAuB,EAAE;QACnF,MAAM,oBAAoB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE/D,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;YAC3C,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YACtE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEzC,MAAM,YAAY,GAAG,oBAAoB;aACtC,kBAAkB,CAAC,UAAU,CAAC;aAC9B,KAAK,CAAC,eAAe,CAAC,CAAA;QAEzB,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE;YACpC,YAAY,CAAC,SAAS,CACpB,SAAS,EACT,WAAW,EACX;;kDAEwC,EACxC;gBACE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;aACpC,CACF,CAAA;SACF;QAED,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE/C,OAAO,UAAU,CAAA;IACnB,CAAC,EACD,+CAA+C,EAC/C,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"getBoundariesByClientId.js","sourceRoot":"","sources":["../../../src/repositories/boundaries/getBoundariesByClientId.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAKzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,cAA8B,EAC9B,MAAqC,EACrC,MAAc,EACO,EAAE;IACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC5B,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,6EAA6E,CAC9E,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,EAAE,UAA0B,EAAE,WAAyB,EAAuB,EAAE;QACnF,MAAM,oBAAoB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE/D,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM;YAC3C,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YACtE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEzC,MAAM,YAAY,GAAG,oBAAoB;aACtC,kBAAkB,CAAC,UAAU,CAAC;aAC9B,KAAK,CAAC,eAAe,CAAC,CAAA;QAEzB,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE;YACpC,YAAY,CAAC,SAAS,CACpB,SAAS,EACT,WAAW,EACX;;kDAEwC,EACxC;gBACE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;aACpC,CACF,CAAA;SACF;QAED,IAAI,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE7C,IAAI,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE;YAClD,2CAA2C;YAC3C,qFAAqF;YACrF,mEAAmE;YACnE,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YAEzD,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;gBAC9B,MAAM,qBAAqB,GAAG,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;gBAE3E,IAAI,WAAW,EAAE;oBACf,qBAAqB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;iBAClD;gBAED,MAAM,uBAAuB,GAAG,MAAM,qBAAqB;qBACxD,KAAK,CAAC,uEAAuE,EAAE;oBAC9E,QAAQ,EAAE,QAAQ,CAAC,EAAE;oBACrB,UAAU,EAAE,UAAU;iBACvB,CAAC;qBACD,SAAS,CACR,GAAG,EACH,KAAK,EACL,qEAAqE,EACrE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CACxD;qBACA,OAAO,EAAE,CAAA;gBAEZ,OAAO;oBACL,GAAG,QAAQ;oBACX,uBAAuB;iBACxB,CAAA;YACH,CAAC,CAAC,CACH,CAAA;SACF;QAED,OAAO,UAAU,CAAA;IACnB,CAAC,EACD,+CAA+C,EAC/C,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { ClientDeviceSetting, Device, EntityTag, ImeiIccidCarrier, ServiceProvider, } from '../../entities';
1
+ import { ClientDeviceSetting, Device, EntityTag, ImeiIccidCarrier, ServiceProvider, Tag, } from '../../entities';
2
2
  export const getDevices = async (novaDataSource, params, logger) => {
3
3
  if (!params?.filters?.deviceTypeId &&
4
4
  !params?.filters?.clientId &&
@@ -62,7 +62,30 @@ export const getDevices = async (novaDataSource, params, logger) => {
62
62
  queryBuilder = queryBuilder.offset(realPageIndex * pageSize);
63
63
  queryBuilder = queryBuilder.limit(pageSize);
64
64
  }
65
- const devices = await queryBuilder.getMany();
65
+ let devices = await queryBuilder.getMany();
66
+ if (params.projectionOptions?.withSecurityGroupTag) {
67
+ //TODO: Refactor this to a common function,
68
+ // change the approach to get the security group tags for all the users in one query,
69
+ // then map them to the users. Target methods: getUsers, getBoundariesByClientId
70
+ const entityTagRepo = dataSource.getRepository(EntityTag);
71
+ devices = await Promise.all(devices.map(async (device) => {
72
+ const entityTagQueryBuilder = entityTagRepo.createQueryBuilder('entityTag');
73
+ if (queryRunner) {
74
+ entityTagQueryBuilder.setQueryRunner(queryRunner);
75
+ }
76
+ const securityGroupEntityTags = await entityTagQueryBuilder
77
+ .where('entityTag.entityId = :entityId AND entityTag.entityType = :entityType', {
78
+ entityId: device.id,
79
+ entityType: 'Device',
80
+ })
81
+ .innerJoin(Tag, 'tag', `tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)`, { metadata: JSON.stringify({ isSecurityGroup: true }) })
82
+ .getMany();
83
+ return {
84
+ ...device,
85
+ securityGroupEntityTags,
86
+ };
87
+ }));
88
+ }
66
89
  return devices;
67
90
  }, 'DevicesRepository::getDevices', dbQueryRunner);
68
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getDevices.js","sourceRoot":"","sources":["../../../src/repositories/devices/getDevices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getDevices.js","sourceRoot":"","sources":["../../../src/repositories/devices/getDevices.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { EntityTag, User } from '../../entities';
1
+ import { EntityTag, Tag, User } from '../../entities';
2
2
  import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
3
  export const getUsers = async (novaDataSource, params, logger) => {
4
4
  if (!params?.filters?.emailList?.length &&
@@ -56,8 +56,31 @@ export const getUsers = async (novaDataSource, params, logger) => {
56
56
  });
57
57
  }
58
58
  queryBuilder = queryBuilder.orderBy('user.lastname', 'DESC');
59
- const result = await queryBuilder.getMany();
60
- return result;
59
+ let users = await queryBuilder.getMany();
60
+ if (params.projectionOptions?.withSecurityGroupTag) {
61
+ //TODO: Refactor this to a common function,
62
+ // change the approach to get the security group tags for all the users in one query,
63
+ // then map them to the users. Target methods: getDevices, getBoundariesByClientId
64
+ const entityTagRepo = dataSource.getRepository(EntityTag);
65
+ users = await Promise.all(users.map(async (user) => {
66
+ const entityTagQueryBuilder = entityTagRepo.createQueryBuilder('entityTag');
67
+ if (queryRunner) {
68
+ entityTagQueryBuilder.setQueryRunner(queryRunner);
69
+ }
70
+ const securityGroupEntityTags = await entityTagQueryBuilder
71
+ .where('entityTag.entityId = :entityId AND entityTag.entityType = :entityType', {
72
+ entityId: user.numberId,
73
+ entityType: 'User',
74
+ })
75
+ .innerJoin(Tag, 'tag', `tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)`, { metadata: JSON.stringify({ isSecurityGroup: true }) })
76
+ .getMany();
77
+ return {
78
+ ...user,
79
+ securityGroupEntityTags,
80
+ };
81
+ }));
82
+ }
83
+ return users;
61
84
  }, 'UsersRepository::getUsers', dbQueryRunner);
62
85
  };
63
86
  //# sourceMappingURL=getUsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUsers.js","sourceRoot":"","sources":["../../../src/repositories/users/getUsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getUsers.js","sourceRoot":"","sources":["../../../src/repositories/users/getUsers.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ export interface GetBoundariesByClientIdParams extends BaseSelectQueryParams {
6
6
  status?: BoundaryStatus;
7
7
  tagIdList?: number[];
8
8
  };
9
+ projectionOptions?: {
10
+ withSecurityGroupTag?: boolean;
11
+ };
9
12
  }
10
13
  export interface GetBoundaryByIdParams extends BaseSelectQueryParams {
11
14
  filters: {
@@ -23,6 +23,7 @@ export interface GetDevicesParams extends OptionalReportPagination {
23
23
  withDeviceType?: boolean;
24
24
  withIccidCarrier?: boolean;
25
25
  withClientDeviceSettings?: boolean;
26
+ withSecurityGroupTag?: boolean;
26
27
  };
27
28
  sortOptions?: {
28
29
  sortField?: 'name';
@@ -21,6 +21,9 @@ export interface GetUsersParams extends BaseSelectQueryParams {
21
21
  status?: string;
22
22
  tagIdList?: number[];
23
23
  };
24
+ projectionOptions?: {
25
+ withSecurityGroupTag?: boolean;
26
+ };
24
27
  }
25
28
  export interface GetUsersIdsByPhoneAndCountryCodeParams extends BaseSelectQueryParams {
26
29
  filters: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.0.113",
3
+ "version": "1.0.114",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",