@laboratory-one/api-components 0.0.12 → 0.0.14
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/cjs/auth/auth.service.d.ts +3 -1
- package/dist/cjs/auth/auth.service.d.ts.map +1 -1
- package/dist/cjs/auth/auth.service.js +5 -1
- package/dist/cjs/auth/auth.service.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/req.type.d.ts +6 -0
- package/dist/cjs/types/req.type.d.ts.map +1 -0
- package/dist/cjs/types/req.type.js +3 -0
- package/dist/cjs/types/req.type.js.map +1 -0
- package/dist/cjs/user/dtos/delete-user.request.dto.d.ts +4 -0
- package/dist/cjs/user/dtos/delete-user.request.dto.d.ts.map +1 -0
- package/dist/cjs/user/dtos/delete-user.request.dto.js +15 -0
- package/dist/cjs/user/dtos/delete-user.request.dto.js.map +1 -0
- package/dist/cjs/user/dtos/index.d.ts +1 -0
- package/dist/cjs/user/dtos/index.d.ts.map +1 -1
- package/dist/cjs/user/dtos/index.js +1 -0
- package/dist/cjs/user/dtos/index.js.map +1 -1
- package/dist/cjs/user/index.d.ts +1 -0
- package/dist/cjs/user/index.d.ts.map +1 -1
- package/dist/cjs/user/index.js +1 -0
- package/dist/cjs/user/index.js.map +1 -1
- package/dist/cjs/user/schemas/delete-user.schema.d.ts +9 -0
- package/dist/cjs/user/schemas/delete-user.schema.d.ts.map +1 -0
- package/dist/cjs/user/schemas/delete-user.schema.js +9 -0
- package/dist/cjs/user/schemas/delete-user.schema.js.map +1 -0
- package/dist/cjs/user/schemas/index.d.ts +4 -0
- package/dist/cjs/user/schemas/index.d.ts.map +1 -0
- package/dist/cjs/user/schemas/index.js +7 -0
- package/dist/cjs/user/schemas/index.js.map +1 -0
- package/dist/cjs/user/schemas/signup.schema.d.ts +12 -0
- package/dist/cjs/user/schemas/signup.schema.d.ts.map +1 -0
- package/dist/cjs/user/schemas/signup.schema.js +10 -0
- package/dist/cjs/user/schemas/signup.schema.js.map +1 -0
- package/dist/cjs/user/schemas/update-user.schema.d.ts +18 -0
- package/dist/cjs/user/schemas/update-user.schema.d.ts.map +1 -0
- package/dist/cjs/user/schemas/update-user.schema.js +14 -0
- package/dist/cjs/user/schemas/update-user.schema.js.map +1 -0
- package/dist/cjs/user/user.controller.d.ts +4 -3
- package/dist/cjs/user/user.controller.d.ts.map +1 -1
- package/dist/cjs/user/user.controller.js +5 -13
- package/dist/cjs/user/user.controller.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +2 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +2 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/noop.util.d.ts +2 -1
- package/dist/cjs/utils/noop.util.d.ts.map +1 -1
- package/dist/cjs/utils/noop.util.js +5 -3
- package/dist/cjs/utils/noop.util.js.map +1 -1
- package/dist/cjs/utils/schema.util.d.ts +11 -0
- package/dist/cjs/utils/schema.util.d.ts.map +1 -0
- package/dist/cjs/utils/schema.util.js +14 -0
- package/dist/cjs/utils/schema.util.js.map +1 -0
- package/dist/esm/auth/auth.service.d.ts +3 -1
- package/dist/esm/auth/auth.service.d.ts.map +1 -1
- package/dist/esm/auth/auth.service.js +5 -1
- package/dist/esm/auth/auth.service.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/req.type.d.ts +6 -0
- package/dist/esm/types/req.type.d.ts.map +1 -0
- package/dist/esm/types/req.type.js +2 -0
- package/dist/esm/types/req.type.js.map +1 -0
- package/dist/esm/user/dtos/delete-user.request.dto.d.ts +4 -0
- package/dist/esm/user/dtos/delete-user.request.dto.d.ts.map +1 -0
- package/dist/esm/user/dtos/delete-user.request.dto.js +11 -0
- package/dist/esm/user/dtos/delete-user.request.dto.js.map +1 -0
- package/dist/esm/user/dtos/index.d.ts +1 -0
- package/dist/esm/user/dtos/index.d.ts.map +1 -1
- package/dist/esm/user/dtos/index.js +1 -0
- package/dist/esm/user/dtos/index.js.map +1 -1
- package/dist/esm/user/index.d.ts +1 -0
- package/dist/esm/user/index.d.ts.map +1 -1
- package/dist/esm/user/index.js +1 -0
- package/dist/esm/user/index.js.map +1 -1
- package/dist/esm/user/schemas/delete-user.schema.d.ts +9 -0
- package/dist/esm/user/schemas/delete-user.schema.d.ts.map +1 -0
- package/dist/esm/user/schemas/delete-user.schema.js +6 -0
- package/dist/esm/user/schemas/delete-user.schema.js.map +1 -0
- package/dist/esm/user/schemas/index.d.ts +4 -0
- package/dist/esm/user/schemas/index.d.ts.map +1 -0
- package/dist/esm/user/schemas/index.js +4 -0
- package/dist/esm/user/schemas/index.js.map +1 -0
- package/dist/esm/user/schemas/signup.schema.d.ts +12 -0
- package/dist/esm/user/schemas/signup.schema.d.ts.map +1 -0
- package/dist/esm/user/schemas/signup.schema.js +7 -0
- package/dist/esm/user/schemas/signup.schema.js.map +1 -0
- package/dist/esm/user/schemas/update-user.schema.d.ts +18 -0
- package/dist/esm/user/schemas/update-user.schema.d.ts.map +1 -0
- package/dist/esm/user/schemas/update-user.schema.js +11 -0
- package/dist/esm/user/schemas/update-user.schema.js.map +1 -0
- package/dist/esm/user/user.controller.d.ts +4 -3
- package/dist/esm/user/user.controller.d.ts.map +1 -1
- package/dist/esm/user/user.controller.js +5 -13
- package/dist/esm/user/user.controller.js.map +1 -1
- package/dist/esm/utils/index.d.ts +2 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/noop.util.d.ts +2 -1
- package/dist/esm/utils/noop.util.d.ts.map +1 -1
- package/dist/esm/utils/noop.util.js +2 -1
- package/dist/esm/utils/noop.util.js.map +1 -1
- package/dist/esm/utils/schema.util.d.ts +11 -0
- package/dist/esm/utils/schema.util.d.ts.map +1 -0
- package/dist/esm/utils/schema.util.js +11 -0
- package/dist/esm/utils/schema.util.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/src/auth/auth.service.ts +12 -3
- package/src/types/index.ts +1 -0
- package/src/types/req.type.ts +5 -0
- package/src/user/dtos/delete-user.request.dto.ts +8 -0
- package/src/user/dtos/index.ts +1 -0
- package/src/user/index.ts +1 -0
- package/src/user/schemas/delete-user.schema.ts +7 -0
- package/src/user/schemas/index.ts +3 -0
- package/src/user/schemas/signup.schema.ts +8 -0
- package/src/user/schemas/update-user.schema.ts +12 -0
- package/src/user/user.controller.ts +10 -14
- package/src/utils/index.ts +2 -0
- package/src/utils/noop.util.ts +2 -1
- package/src/utils/schema.util.ts +11 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@laboratory-one/api-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"description": "API components for Laboratory One",
|
|
5
5
|
"author": "Laboratory One",
|
|
6
6
|
"private": false,
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@nestjs/core": "10.3.9",
|
|
38
38
|
"@nestjs/jwt": "10.2.0",
|
|
39
39
|
"@nestjs/platform-express": "10.3.9",
|
|
40
|
-
"@nestjs/schedule": "
|
|
40
|
+
"@nestjs/schedule": "4.1.0",
|
|
41
41
|
"@nestjs/swagger": "7.3.1",
|
|
42
42
|
"@nestjs/terminus": "10.2.3",
|
|
43
43
|
"@prisma/client": "5.15.1",
|
|
@@ -57,7 +57,8 @@
|
|
|
57
57
|
"prisma": "5.15.1",
|
|
58
58
|
"reflect-metadata": "0.2.2",
|
|
59
59
|
"rxjs": "7.8.1",
|
|
60
|
-
"stytch": "10.18.0"
|
|
60
|
+
"stytch": "10.18.0",
|
|
61
|
+
"zod": "3.23.8"
|
|
61
62
|
},
|
|
62
63
|
"devDependencies": {
|
|
63
64
|
"@babel/core": "7.24.7",
|
package/src/auth/auth.service.ts
CHANGED
|
@@ -21,12 +21,15 @@ export class AuthService {
|
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
async signup(
|
|
24
|
+
async signup(
|
|
25
|
+
data: RegisterRequestDto,
|
|
26
|
+
): Promise<stytch.PasswordsCreateResponse> {
|
|
25
27
|
this.logger.debug('signup');
|
|
26
28
|
|
|
27
|
-
const res =
|
|
29
|
+
const res: stytch.PasswordsCreateResponse =
|
|
30
|
+
await this.authClient.passwords.create(data);
|
|
28
31
|
|
|
29
|
-
return res
|
|
32
|
+
return res;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
async login(data: RegisterRequestDto): Promise<boolean> {
|
|
@@ -45,4 +48,10 @@ export class AuthService {
|
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
}
|
|
51
|
+
|
|
52
|
+
async delete(externalId: string): Promise<void> {
|
|
53
|
+
this.logger.debug('delete');
|
|
54
|
+
|
|
55
|
+
await this.authClient.users.delete({ user_id: externalId });
|
|
56
|
+
}
|
|
48
57
|
}
|
package/src/types/index.ts
CHANGED
package/src/user/dtos/index.ts
CHANGED
package/src/user/index.ts
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
import { schemaPatterns } from '../../utils';
|
|
4
|
+
|
|
5
|
+
export const updateUserSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
phoneNumber: schemaPatterns.phoneNumber,
|
|
8
|
+
fullName: schemaPatterns.fullName,
|
|
9
|
+
pushToken: schemaPatterns.pushToken,
|
|
10
|
+
tz: schemaPatterns.tz,
|
|
11
|
+
})
|
|
12
|
+
.partial();
|
|
@@ -10,6 +10,7 @@ import { JwtService } from '@nestjs/jwt';
|
|
|
10
10
|
import { ApiResponse, ApiTags } from '@nestjs/swagger';
|
|
11
11
|
import { OnboardingStatus, User } from '@prisma/client';
|
|
12
12
|
import { ExpoPushMessage } from 'expo-server-sdk';
|
|
13
|
+
import * as stytch from 'stytch';
|
|
13
14
|
|
|
14
15
|
import { AuthService } from '../auth/auth.service';
|
|
15
16
|
import { UserService } from './user.service';
|
|
@@ -26,6 +27,7 @@ import {
|
|
|
26
27
|
utcOffsetToHours,
|
|
27
28
|
} from '../utils';
|
|
28
29
|
import { AuthGuard } from '../guard';
|
|
30
|
+
import * as types from '../types';
|
|
29
31
|
|
|
30
32
|
@ApiTags('User')
|
|
31
33
|
@Controller('user')
|
|
@@ -49,22 +51,16 @@ export class UserController {
|
|
|
49
51
|
password: cleanString(dto.password),
|
|
50
52
|
};
|
|
51
53
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
const res: stytch.PasswordsCreateResponse =
|
|
55
|
+
await this.authService.signup(cleanedDTO);
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
} catch (error: any) {
|
|
59
|
-
if (error?.error_message) {
|
|
60
|
-
handleError(error.error_message);
|
|
61
|
-
} else {
|
|
62
|
-
handleError('Error creating user');
|
|
63
|
-
}
|
|
57
|
+
if (!res) {
|
|
58
|
+
handleError('Error creating user');
|
|
64
59
|
}
|
|
65
60
|
|
|
66
61
|
const user: User = await this.userService.create({
|
|
67
62
|
email: cleanedDTO.email,
|
|
63
|
+
externalId: res.user_id,
|
|
68
64
|
});
|
|
69
65
|
|
|
70
66
|
if (!user) {
|
|
@@ -120,7 +116,7 @@ export class UserController {
|
|
|
120
116
|
description: 'get self successful',
|
|
121
117
|
type: GetUserResponseDto,
|
|
122
118
|
})
|
|
123
|
-
async getSelf(@Request() req): Promise<GetUserResponseDto> {
|
|
119
|
+
async getSelf(@Request() req: types.reqType): Promise<GetUserResponseDto> {
|
|
124
120
|
try {
|
|
125
121
|
const user: User = await this.userService.findOneByUserId(
|
|
126
122
|
req.user.userId,
|
|
@@ -141,7 +137,7 @@ export class UserController {
|
|
|
141
137
|
})
|
|
142
138
|
async edit(
|
|
143
139
|
@Body() dto: UpdateUserRequestDto,
|
|
144
|
-
@Request() req,
|
|
140
|
+
@Request() req: types.reqType,
|
|
145
141
|
): Promise<GetUserResponseDto> {
|
|
146
142
|
try {
|
|
147
143
|
const cleanDto: UpdateUserRequestDto = {
|
|
@@ -178,7 +174,7 @@ export class UserController {
|
|
|
178
174
|
status: 200,
|
|
179
175
|
description: 'push test successful',
|
|
180
176
|
})
|
|
181
|
-
async pushTest(@Request() req): Promise<void> {
|
|
177
|
+
async pushTest(@Request() req: types.reqType): Promise<void> {
|
|
182
178
|
try {
|
|
183
179
|
const user: User = await this.userService.findOneByUserId(
|
|
184
180
|
req.user.userId,
|
package/src/utils/index.ts
CHANGED
package/src/utils/noop.util.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export const
|
|
1
|
+
export const noop = () => {};
|
|
2
|
+
export const noopAsync = async () => {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export const schemaPatterns = {
|
|
4
|
+
email: z.string().email().max(100).min(1).toLowerCase().trim(),
|
|
5
|
+
password: z.string().min(10).max(100).trim(),
|
|
6
|
+
phoneNumber: z.string().min(7).max(20).trim(),
|
|
7
|
+
fullName: z.string().min(2).max(100).trim(),
|
|
8
|
+
pushToken: z.string().min(1).max(500).trim(),
|
|
9
|
+
tz: z.number().int().min(-10000).max(10000),
|
|
10
|
+
date: z.string().date(),
|
|
11
|
+
};
|