@spytecgps/nova-orm 1.0.111 → 1.0.112

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,15 +1,12 @@
1
1
  import { User } from '../../entities';
2
+ import { oneRequiredGetUserByIdParams } from '../../types/user';
3
+ import { allAttributesAreNull } from '../../utils/paramsValidators';
2
4
  import { uuidStringToBinaryBuffer } from '../../utils/uuidHelpers';
3
5
  export const getUserById = async (novaDataSource, params, logger) => {
4
- if (!params?.filters?.id) {
6
+ if (allAttributesAreNull(params, oneRequiredGetUserByIdParams)) {
5
7
  logger.warn({ params }, 'UsersRepository::getUserById - missing required parameters');
6
8
  return null;
7
9
  }
8
- const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
9
- if (!binaryBuffer?.length) {
10
- logger.warn({ params }, 'UsersRepository::getUserById - user id should be a valid UUID');
11
- return null;
12
- }
13
10
  // Force the query to run on master or slave
14
11
  const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
15
12
  return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
@@ -18,9 +15,21 @@ export const getUserById = async (novaDataSource, params, logger) => {
18
15
  if (queryRunner) {
19
16
  queryBuilder = queryBuilder.setQueryRunner(queryRunner);
20
17
  }
21
- queryBuilder = queryBuilder.where('user.id = :id', {
22
- id: binaryBuffer,
23
- });
18
+ if (params.filters.id) {
19
+ const binaryBuffer = uuidStringToBinaryBuffer(params?.filters?.id);
20
+ if (!binaryBuffer?.length) {
21
+ logger.warn({ params }, 'UsersRepository::getUserById - user id should be a valid UUID');
22
+ return null;
23
+ }
24
+ queryBuilder = queryBuilder.where('user.id = :id', {
25
+ id: binaryBuffer,
26
+ });
27
+ }
28
+ if (params.filters.numberId) {
29
+ queryBuilder = queryBuilder.andWhere('user.numberId = :numberId', {
30
+ numberId: params.filters.numberId,
31
+ });
32
+ }
24
33
  const result = await queryBuilder.getOne();
25
34
  return result;
26
35
  }, 'UsersRepository::getUserById', dbQueryRunner);
@@ -1 +1 @@
1
- {"version":3,"file":"getUserById.js","sourceRoot":"","sources":["../../../src/repositories/users/getUserById.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAIrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,cAA8B,EAC9B,MAAyB,EACzB,MAAc,EACC,EAAE;IACjB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,4DAA4D,CAAC,CAAA;QACrF,OAAO,IAAI,CAAA;KACZ;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,+DAA+D,CAAC,CAAA;QACxF,OAAO,IAAI,CAAA;KACZ;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAAiB,EAAE;QAC7E,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAEtD,IAAI,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAE7D,IAAI,WAAW,EAAE;YACf,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACxD;QAED,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE;YACjD,EAAE,EAAE,YAAY;SACjB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAA;QAE1C,OAAO,MAAM,CAAA;IACf,CAAC,EACD,8BAA8B,EAC9B,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"getUserById.js","sourceRoot":"","sources":["../../../src/repositories/users/getUserById.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAGrC,OAAO,EAAqB,4BAA4B,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,cAA8B,EAC9B,MAAyB,EACzB,MAAc,EACC,EAAE;IACjB,IAAI,oBAAoB,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAAE;QAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,4DAA4D,CAAC,CAAA;QACrF,OAAO,IAAI,CAAA;KACZ;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAAiB,EAAE;QAC7E,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAEtD,IAAI,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAE7D,IAAI,WAAW,EAAE;YACf,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SACxD;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;YACrB,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YAElE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,+DAA+D,CAAC,CAAA;gBACxF,OAAO,IAAI,CAAA;aACZ;YAED,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE;gBACjD,EAAE,EAAE,YAAY;aACjB,CAAC,CAAA;SACH;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,2BAA2B,EAAE;gBAChE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;aAClC,CAAC,CAAA;SACH;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAA;QAE1C,OAAO,MAAM,CAAA;IACf,CAAC,EACD,8BAA8B,EAC9B,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -5,9 +5,11 @@ export interface GetUsersConfigurationByImeiParams extends BaseSelectQueryParams
5
5
  imei: string;
6
6
  };
7
7
  }
8
+ export declare const oneRequiredGetUserByIdParams: string[];
8
9
  export interface GetUserByIdParams extends BaseSelectQueryParams {
9
10
  filters: {
10
- id: string;
11
+ id?: string;
12
+ numberId?: number;
11
13
  };
12
14
  }
13
15
  export interface GetUsersParams extends BaseSelectQueryParams {
@@ -1,2 +1,2 @@
1
- export {};
1
+ export const oneRequiredGetUserByIdParams = ['filters.id', 'filters.numberId'];
2
2
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.0.111",
3
+ "version": "1.0.112",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",