@laboratory-one/api-components 0.0.5 → 0.0.7

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 (90) hide show
  1. package/dist/cjs/cron/cron.module.d.ts +3 -0
  2. package/dist/cjs/cron/cron.module.d.ts.map +1 -0
  3. package/dist/cjs/cron/cron.module.js +16 -0
  4. package/dist/cjs/cron/cron.module.js.map +1 -0
  5. package/dist/cjs/cron/cron.service.d.ts +6 -0
  6. package/dist/cjs/cron/cron.service.d.ts.map +1 -0
  7. package/dist/cjs/cron/cron.service.js +27 -0
  8. package/dist/cjs/cron/cron.service.js.map +1 -0
  9. package/dist/cjs/cron/index.d.ts +3 -0
  10. package/dist/cjs/cron/index.d.ts.map +1 -0
  11. package/dist/cjs/cron/index.js +6 -0
  12. package/dist/cjs/cron/index.js.map +1 -0
  13. package/dist/cjs/index.d.ts +1 -0
  14. package/dist/cjs/index.d.ts.map +1 -1
  15. package/dist/cjs/index.js +1 -0
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/push/push.service.d.ts +2 -1
  18. package/dist/cjs/push/push.service.d.ts.map +1 -1
  19. package/dist/cjs/push/push.service.js +2 -2
  20. package/dist/cjs/push/push.service.js.map +1 -1
  21. package/dist/cjs/user/dtos/get-user.response.dto.d.ts +0 -1
  22. package/dist/cjs/user/dtos/get-user.response.dto.d.ts.map +1 -1
  23. package/dist/cjs/user/dtos/get-user.response.dto.js +0 -6
  24. package/dist/cjs/user/dtos/get-user.response.dto.js.map +1 -1
  25. package/dist/cjs/user/dtos/update-user.request.dto.d.ts +1 -0
  26. package/dist/cjs/user/dtos/update-user.request.dto.d.ts.map +1 -1
  27. package/dist/cjs/user/dtos/update-user.request.dto.js +6 -0
  28. package/dist/cjs/user/dtos/update-user.request.dto.js.map +1 -1
  29. package/dist/cjs/user/user.controller.d.ts.map +1 -1
  30. package/dist/cjs/user/user.controller.js +2 -1
  31. package/dist/cjs/user/user.controller.js.map +1 -1
  32. package/dist/cjs/user/user.service.d.ts +2 -0
  33. package/dist/cjs/user/user.service.d.ts.map +1 -1
  34. package/dist/cjs/user/user.service.js +12 -0
  35. package/dist/cjs/user/user.service.js.map +1 -1
  36. package/dist/cjs/utils/input.d.ts +1 -0
  37. package/dist/cjs/utils/input.d.ts.map +1 -1
  38. package/dist/cjs/utils/input.js +7 -1
  39. package/dist/cjs/utils/input.js.map +1 -1
  40. package/dist/esm/cron/cron.module.d.ts +3 -0
  41. package/dist/esm/cron/cron.module.d.ts.map +1 -0
  42. package/dist/esm/cron/cron.module.js +13 -0
  43. package/dist/esm/cron/cron.module.js.map +1 -0
  44. package/dist/esm/cron/cron.service.d.ts +6 -0
  45. package/dist/esm/cron/cron.service.d.ts.map +1 -0
  46. package/dist/esm/cron/cron.service.js +24 -0
  47. package/dist/esm/cron/cron.service.js.map +1 -0
  48. package/dist/esm/cron/index.d.ts +3 -0
  49. package/dist/esm/cron/index.d.ts.map +1 -0
  50. package/dist/esm/cron/index.js +3 -0
  51. package/dist/esm/cron/index.js.map +1 -0
  52. package/dist/esm/index.d.ts +1 -0
  53. package/dist/esm/index.d.ts.map +1 -1
  54. package/dist/esm/index.js +1 -0
  55. package/dist/esm/index.js.map +1 -1
  56. package/dist/esm/push/push.service.d.ts +2 -1
  57. package/dist/esm/push/push.service.d.ts.map +1 -1
  58. package/dist/esm/push/push.service.js +2 -2
  59. package/dist/esm/push/push.service.js.map +1 -1
  60. package/dist/esm/user/dtos/get-user.response.dto.d.ts +0 -1
  61. package/dist/esm/user/dtos/get-user.response.dto.d.ts.map +1 -1
  62. package/dist/esm/user/dtos/get-user.response.dto.js +0 -6
  63. package/dist/esm/user/dtos/get-user.response.dto.js.map +1 -1
  64. package/dist/esm/user/dtos/update-user.request.dto.d.ts +1 -0
  65. package/dist/esm/user/dtos/update-user.request.dto.d.ts.map +1 -1
  66. package/dist/esm/user/dtos/update-user.request.dto.js +6 -0
  67. package/dist/esm/user/dtos/update-user.request.dto.js.map +1 -1
  68. package/dist/esm/user/user.controller.d.ts.map +1 -1
  69. package/dist/esm/user/user.controller.js +3 -2
  70. package/dist/esm/user/user.controller.js.map +1 -1
  71. package/dist/esm/user/user.service.d.ts +2 -0
  72. package/dist/esm/user/user.service.d.ts.map +1 -1
  73. package/dist/esm/user/user.service.js +12 -0
  74. package/dist/esm/user/user.service.js.map +1 -1
  75. package/dist/esm/utils/input.d.ts +1 -0
  76. package/dist/esm/utils/input.d.ts.map +1 -1
  77. package/dist/esm/utils/input.js +5 -0
  78. package/dist/esm/utils/input.js.map +1 -1
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +12 -11
  81. package/src/cron/cron.module.ts +9 -0
  82. package/src/cron/cron.service.ts +15 -0
  83. package/src/cron/index.ts +2 -0
  84. package/src/index.ts +1 -0
  85. package/src/push/push.service.ts +3 -1
  86. package/src/user/dtos/get-user.response.dto.ts +0 -5
  87. package/src/user/dtos/update-user.request.dto.ts +5 -0
  88. package/src/user/user.controller.ts +6 -4
  89. package/src/user/user.service.ts +16 -0
  90. package/src/utils/input.ts +6 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laboratory-one/api-components",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "description": "API components for Laboratory One",
5
5
  "author": "Laboratory One",
6
6
  "private": false,
@@ -36,6 +36,7 @@
36
36
  "@nestjs/core": "10.3.9",
37
37
  "@nestjs/jwt": "10.2.0",
38
38
  "@nestjs/platform-express": "10.3.9",
39
+ "@nestjs/schedule": "^4.1.0",
39
40
  "@nestjs/swagger": "7.3.1",
40
41
  "@nestjs/terminus": "10.2.3",
41
42
  "@prisma/client": "5.15.1",
@@ -58,22 +59,16 @@
58
59
  "stytch": "10.18.0"
59
60
  },
60
61
  "devDependencies": {
62
+ "@babel/core": "7.24.7",
61
63
  "@nestjs/cli": "10.3.2",
62
64
  "@nestjs/schematics": "10.1.1",
63
65
  "@nestjs/testing": "10.3.9",
66
+ "@tanstack/eslint-plugin-query": "5.43.1",
64
67
  "@types/compression": "1.7.5",
65
68
  "@types/express": "4.17.21",
69
+ "@types/jest": "29.5.12",
66
70
  "@types/node": "20.14.5",
67
71
  "@types/supertest": "6.0.2",
68
- "source-map-support": "0.5.21",
69
- "supertest": "7.0.0",
70
- "ts-jest": "29.1.5",
71
- "ts-loader": "9.5.1",
72
- "ts-node": "10.9.2",
73
- "typescript": "5.4.5",
74
- "@babel/core": "7.24.7",
75
- "@tanstack/eslint-plugin-query": "5.43.1",
76
- "@types/jest": "29.5.12",
77
72
  "@typescript-eslint/eslint-plugin": "7.13.1",
78
73
  "@typescript-eslint/parser": "7.13.1",
79
74
  "eslint": "8.57.0",
@@ -84,8 +79,14 @@
84
79
  "eslint-plugin-prettier": "5.1.3",
85
80
  "jest": "29.7.0",
86
81
  "prettier": "3.3.2",
82
+ "source-map-support": "0.5.21",
83
+ "supertest": "7.0.0",
84
+ "ts-jest": "29.1.5",
85
+ "ts-loader": "9.5.1",
86
+ "ts-node": "10.9.2",
87
+ "tsc-alias": "1.8.8",
87
88
  "tsconfig-paths": "4.2.0",
88
- "tsc-alias": "1.8.8"
89
+ "typescript": "5.4.5"
89
90
  },
90
91
  "files": [
91
92
  "dist",
@@ -0,0 +1,9 @@
1
+ import { Module } from '@nestjs/common';
2
+
3
+ import { CronService } from './cron.service';
4
+
5
+ @Module({
6
+ imports: [],
7
+ providers: [CronService],
8
+ })
9
+ export class CronModule {}
@@ -0,0 +1,15 @@
1
+ import { Injectable, Logger } from '@nestjs/common';
2
+ import { Cron } from '@nestjs/schedule';
3
+
4
+ @Injectable()
5
+ export class CronService {
6
+ private readonly logger: Logger = new Logger(CronService.name);
7
+
8
+ constructor() {}
9
+
10
+ // @Cron('45 * * * * *')
11
+ @Cron('0 0 * * * *')
12
+ handleTask(): void {
13
+ this.logger.debug('handleTask');
14
+ }
15
+ }
@@ -0,0 +1,2 @@
1
+ export * from './cron.module';
2
+ export * from './cron.service';
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './auth';
2
+ export * from './cron';
2
3
  export * from './enums';
3
4
  export * from './guard';
4
5
  export * from './health';
@@ -15,9 +15,11 @@ export class PushService {
15
15
  createMessages({
16
16
  body,
17
17
  pushTokens,
18
+ data,
18
19
  }: {
19
20
  body: string;
20
21
  pushTokens: string[];
22
+ data?: Record<string, unknown>;
21
23
  }): ExpoPushMessage[] {
22
24
  this.logger.debug('createMessage');
23
25
 
@@ -33,7 +35,7 @@ export class PushService {
33
35
  to: pushToken,
34
36
  sound: 'default',
35
37
  body,
36
- data: { withSome: 'data' },
38
+ data,
37
39
  });
38
40
  }
39
41
 
@@ -21,11 +21,6 @@ export class GetUserResponseDto {
21
21
  @ApiProperty()
22
22
  fullName?: string | undefined;
23
23
 
24
- @IsOptional()
25
- @IsString()
26
- @ApiProperty()
27
- pushToken?: string | undefined;
28
-
29
24
  @IsEnum(OnboardingStatus)
30
25
  @ApiProperty()
31
26
  onboardingStatus: OnboardingStatus;
@@ -16,4 +16,9 @@ export class UpdateUserRequestDto {
16
16
  @IsString()
17
17
  @ApiProperty()
18
18
  pushToken?: string | undefined;
19
+
20
+ @IsOptional()
21
+ @IsString()
22
+ @ApiProperty()
23
+ tz?: string | undefined;
19
24
  }
@@ -23,6 +23,7 @@ import {
23
23
  cleanString,
24
24
  cleanStringAndLowercase,
25
25
  handleError,
26
+ tzToInt,
26
27
  } from '../utils';
27
28
  import { AuthGuard } from '../guard';
28
29
 
@@ -151,12 +152,13 @@ export class UserController {
151
152
  ? cleanStringAndLowercase(dto.fullName)
152
153
  : undefined,
153
154
  pushToken: dto.pushToken ? cleanString(dto.pushToken) : undefined,
155
+ tz: dto.tz ? tzToInt(dto.tz) : undefined,
154
156
  };
155
157
 
156
- const user: User = await this.userService.update(
157
- req.user.userId,
158
- cleanDto,
159
- );
158
+ const user: User = await this.userService.update(req.user.userId, {
159
+ ...cleanDto,
160
+ tz: parseInt(cleanDto.tz, 10),
161
+ });
160
162
 
161
163
  if (user.fullName && user.phoneNumber) {
162
164
  await this.userService.update(req.user.userId, {
@@ -33,6 +33,22 @@ export class UserService {
33
33
  });
34
34
  }
35
35
 
36
+ async findMany(): Promise<User[]> {
37
+ this.logger.debug('findMany');
38
+
39
+ return this.prisma.user.findMany();
40
+ }
41
+
42
+ async findManyByTz(tz: number): Promise<User[]> {
43
+ this.logger.debug('findManyByTz');
44
+
45
+ return this.prisma.user.findMany({
46
+ where: {
47
+ tz,
48
+ },
49
+ });
50
+ }
51
+
36
52
  async update(id: string, data: Prisma.UserUpdateInput): Promise<User> {
37
53
  this.logger.debug('update');
38
54
 
@@ -2,6 +2,12 @@ export const cleanString = (str: string): string => {
2
2
  return str.trim();
3
3
  };
4
4
 
5
+ export const tzToInt = (str: string): string => {
6
+ const trimmed = cleanString(str);
7
+ const split = trimmed.split(':');
8
+ return split[0];
9
+ };
10
+
5
11
  export const cleanStringAndLowercase = (str: string): string => {
6
12
  const trimmed: string = cleanString(str);
7
13
  return trimmed.toLowerCase();