@laboratory-one/api-components 0.0.7 → 0.0.8

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.
@@ -2,6 +2,6 @@ export declare class UpdateUserRequestDto {
2
2
  phoneNumber?: string | undefined;
3
3
  fullName?: string | undefined;
4
4
  pushToken?: string | undefined;
5
- tz?: string | undefined;
5
+ tz?: number | undefined;
6
6
  }
7
7
  //# sourceMappingURL=update-user.request.dto.d.ts.map
@@ -27,8 +27,8 @@ tslib_1.__decorate([
27
27
  ], UpdateUserRequestDto.prototype, "pushToken", void 0);
28
28
  tslib_1.__decorate([
29
29
  (0, class_validator_1.IsOptional)(),
30
- (0, class_validator_1.IsString)(),
30
+ (0, class_validator_1.IsNumber)(),
31
31
  (0, swagger_1.ApiProperty)(),
32
- tslib_1.__metadata("design:type", String)
32
+ tslib_1.__metadata("design:type", Number)
33
33
  ], UpdateUserRequestDto.prototype, "tz", void 0);
34
34
  //# sourceMappingURL=update-user.request.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-user.request.dto.js","sourceRoot":"/","sources":["user/dtos/update-user.request.dto.ts"],"names":[],"mappings":";;;;AAAA,qDAAuD;AACvD,6CAA8C;AAE9C,MAAa,oBAAoB;CAoBhC;AApBD,oDAoBC;AAhBC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;yDACmB;AAKjC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;sDACgB;AAK9B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;uDACiB;AAK/B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;gDACU","sourcesContent":["import { IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class UpdateUserRequestDto {\n @IsOptional()\n @IsString()\n @ApiProperty()\n phoneNumber?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n fullName?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n pushToken?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n tz?: string | undefined;\n}\n"]}
1
+ {"version":3,"file":"update-user.request.dto.js","sourceRoot":"/","sources":["user/dtos/update-user.request.dto.ts"],"names":[],"mappings":";;;;AAAA,qDAAiE;AACjE,6CAA8C;AAE9C,MAAa,oBAAoB;CAoBhC;AApBD,oDAoBC;AAhBC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;yDACmB;AAKjC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;sDACgB;AAK9B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;uDACiB;AAK/B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;gDACU","sourcesContent":["import { IsNumber, IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class UpdateUserRequestDto {\n @IsOptional()\n @IsString()\n @ApiProperty()\n phoneNumber?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n fullName?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n pushToken?: string | undefined;\n\n @IsOptional()\n @IsNumber()\n @ApiProperty()\n tz?: number | undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"user.controller.d.ts","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUnD,qBAEa,cAAc;IAEvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;gBAHV,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU;IAS1B,MAAM,CAAS,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2CrE,KAAK,CAAS,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkCpE,OAAO,CAAY,GAAG,KAAA,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmBpD,IAAI,CACA,GAAG,EAAE,oBAAoB,EACtB,GAAG,KAAA,GACb,OAAO,CAAC,kBAAkB,CAAC;IAoCxB,QAAQ,CAAY,GAAG,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
1
+ {"version":3,"file":"user.controller.d.ts","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD,qBAEa,cAAc;IAEvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;gBAHV,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU;IAS1B,MAAM,CAAS,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2CrE,KAAK,CAAS,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkCpE,OAAO,CAAY,GAAG,KAAA,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmBpD,IAAI,CACA,GAAG,EAAE,oBAAoB,EACtB,GAAG,KAAA,GACb,OAAO,CAAC,kBAAkB,CAAC;IAoCxB,QAAQ,CAAY,GAAG,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
@@ -87,9 +87,9 @@ let UserController = class UserController {
87
87
  ? (0, utils_1.cleanStringAndLowercase)(dto.fullName)
88
88
  : undefined,
89
89
  pushToken: dto.pushToken ? (0, utils_1.cleanString)(dto.pushToken) : undefined,
90
- tz: dto.tz ? (0, utils_1.tzToInt)(dto.tz) : undefined,
90
+ tz: dto.tz ? dto.tz : undefined,
91
91
  };
92
- const user = await this.userService.update(req.user.userId, Object.assign(Object.assign({}, cleanDto), { tz: parseInt(cleanDto.tz, 10) }));
92
+ const user = await this.userService.update(req.user.userId, cleanDto);
93
93
  if (user.fullName && user.phoneNumber) {
94
94
  await this.userService.update(req.user.userId, {
95
95
  onboardingStatus: client_1.OnboardingStatus.COMPLETED,
@@ -1 +1 @@
1
- {"version":3,"file":"user.controller.js","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Body,\n Controller,\n Get,\n Post,\n Request,\n UseGuards,\n} from '@nestjs/common';\nimport { JwtService } from '@nestjs/jwt';\nimport { ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { OnboardingStatus, User } from '@prisma/client';\nimport { ExpoPushMessage } from 'expo-server-sdk';\n\nimport { AuthService } from '../auth/auth.service';\nimport { UserService } from './user.service';\nimport { GetUserResponseDto } from './dtos/get-user.response.dto';\nimport { UpdateUserRequestDto } from './dtos/update-user.request.dto';\nimport { RegisterResponseDto } from './dtos/register.response.dto';\nimport { RegisterRequestDto } from './dtos/register.request.dto';\nimport { PushService } from '../push/push.service';\nimport {\n cleanPhoneNumber,\n cleanString,\n cleanStringAndLowercase,\n handleError,\n tzToInt,\n} from '../utils';\nimport { AuthGuard } from '../guard';\n\n@ApiTags('User')\n@Controller('user')\nexport class UserController {\n constructor(\n private userService: UserService,\n private authService: AuthService,\n private pushService: PushService,\n private jwtService: JwtService,\n ) {}\n\n @Post('signup')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async signup(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: cleanString(dto.password),\n };\n\n try {\n const res: boolean = await this.authService.signup(cleanedDTO);\n\n if (!res) {\n handleError('Error creating user');\n }\n } catch (error: any) {\n if (error?.error_message) {\n handleError(error.error_message);\n } else {\n handleError('Error creating user');\n }\n }\n\n const user: User = await this.userService.create({\n email: cleanedDTO.email,\n });\n\n if (!user) {\n handleError('Error creating user');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @Post('login')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async login(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: dto.password.trim(),\n };\n\n const res: boolean = await this.authService.login(cleanedDTO);\n\n if (!res) {\n handleError('Error logging in');\n }\n\n const user: User = await this.userService.findOneByEmail(cleanedDTO.email);\n\n if (!user) {\n handleError('Error logging in');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @UseGuards(AuthGuard)\n @Get('self')\n @ApiResponse({\n status: 200,\n description: 'get self successful',\n type: GetUserResponseDto,\n })\n async getSelf(@Request() req): Promise<GetUserResponseDto> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('update')\n @ApiResponse({\n status: 200,\n description: 'update user successful',\n type: GetUserResponseDto,\n })\n async edit(\n @Body() dto: UpdateUserRequestDto,\n @Request() req,\n ): Promise<GetUserResponseDto> {\n try {\n const cleanDto: UpdateUserRequestDto = {\n phoneNumber: dto.phoneNumber\n ? cleanPhoneNumber(dto.phoneNumber)\n : undefined,\n fullName: dto.fullName\n ? cleanStringAndLowercase(dto.fullName)\n : undefined,\n pushToken: dto.pushToken ? cleanString(dto.pushToken) : undefined,\n tz: dto.tz ? tzToInt(dto.tz) : undefined,\n };\n\n const user: User = await this.userService.update(req.user.userId, {\n ...cleanDto,\n tz: parseInt(cleanDto.tz, 10),\n });\n\n if (user.fullName && user.phoneNumber) {\n await this.userService.update(req.user.userId, {\n onboardingStatus: OnboardingStatus.COMPLETED,\n });\n }\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('pushTest')\n @ApiResponse({\n status: 200,\n description: 'push test successful',\n })\n async pushTest(@Request() req): Promise<void> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n if (user.pushToken) {\n const messages: ExpoPushMessage[] = this.pushService.createMessages({\n body: 'Test push',\n pushTokens: [user.pushToken],\n });\n await this.pushService.sendMessages(messages);\n }\n } catch (error) {\n handleError(error);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"user.controller.js","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Body,\n Controller,\n Get,\n Post,\n Request,\n UseGuards,\n} from '@nestjs/common';\nimport { JwtService } from '@nestjs/jwt';\nimport { ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { OnboardingStatus, User } from '@prisma/client';\nimport { ExpoPushMessage } from 'expo-server-sdk';\n\nimport { AuthService } from '../auth/auth.service';\nimport { UserService } from './user.service';\nimport { GetUserResponseDto } from './dtos/get-user.response.dto';\nimport { UpdateUserRequestDto } from './dtos/update-user.request.dto';\nimport { RegisterResponseDto } from './dtos/register.response.dto';\nimport { RegisterRequestDto } from './dtos/register.request.dto';\nimport { PushService } from '../push/push.service';\nimport {\n cleanPhoneNumber,\n cleanString,\n cleanStringAndLowercase,\n handleError,\n} from '../utils';\nimport { AuthGuard } from '../guard';\n\n@ApiTags('User')\n@Controller('user')\nexport class UserController {\n constructor(\n private userService: UserService,\n private authService: AuthService,\n private pushService: PushService,\n private jwtService: JwtService,\n ) {}\n\n @Post('signup')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async signup(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: cleanString(dto.password),\n };\n\n try {\n const res: boolean = await this.authService.signup(cleanedDTO);\n\n if (!res) {\n handleError('Error creating user');\n }\n } catch (error: any) {\n if (error?.error_message) {\n handleError(error.error_message);\n } else {\n handleError('Error creating user');\n }\n }\n\n const user: User = await this.userService.create({\n email: cleanedDTO.email,\n });\n\n if (!user) {\n handleError('Error creating user');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @Post('login')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async login(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: dto.password.trim(),\n };\n\n const res: boolean = await this.authService.login(cleanedDTO);\n\n if (!res) {\n handleError('Error logging in');\n }\n\n const user: User = await this.userService.findOneByEmail(cleanedDTO.email);\n\n if (!user) {\n handleError('Error logging in');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @UseGuards(AuthGuard)\n @Get('self')\n @ApiResponse({\n status: 200,\n description: 'get self successful',\n type: GetUserResponseDto,\n })\n async getSelf(@Request() req): Promise<GetUserResponseDto> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('update')\n @ApiResponse({\n status: 200,\n description: 'update user successful',\n type: GetUserResponseDto,\n })\n async edit(\n @Body() dto: UpdateUserRequestDto,\n @Request() req,\n ): Promise<GetUserResponseDto> {\n try {\n const cleanDto: UpdateUserRequestDto = {\n phoneNumber: dto.phoneNumber\n ? cleanPhoneNumber(dto.phoneNumber)\n : undefined,\n fullName: dto.fullName\n ? cleanStringAndLowercase(dto.fullName)\n : undefined,\n pushToken: dto.pushToken ? cleanString(dto.pushToken) : undefined,\n tz: dto.tz ? dto.tz : undefined,\n };\n\n const user: User = await this.userService.update(\n req.user.userId,\n cleanDto,\n );\n\n if (user.fullName && user.phoneNumber) {\n await this.userService.update(req.user.userId, {\n onboardingStatus: OnboardingStatus.COMPLETED,\n });\n }\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('pushTest')\n @ApiResponse({\n status: 200,\n description: 'push test successful',\n })\n async pushTest(@Request() req): Promise<void> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n if (user.pushToken) {\n const messages: ExpoPushMessage[] = this.pushService.createMessages({\n body: 'Test push',\n pushTokens: [user.pushToken],\n });\n await this.pushService.sendMessages(messages);\n }\n } catch (error) {\n handleError(error);\n }\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  export declare const cleanString: (str: string) => string;
2
- export declare const tzToInt: (str: string) => string;
3
2
  export declare const cleanStringAndLowercase: (str: string) => string;
4
3
  export declare const cleanPhoneNumber: (str: string) => string;
5
4
  //# sourceMappingURL=input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"/","sources":["utils/input.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,MAEzC,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,MAIrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,MAAM,KAAG,MAGrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,MAY9C,CAAC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"/","sources":["utils/input.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,MAEzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,MAAM,KAAG,MAGrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,MAY9C,CAAC"}
@@ -1,16 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cleanPhoneNumber = exports.cleanStringAndLowercase = exports.tzToInt = exports.cleanString = void 0;
3
+ exports.cleanPhoneNumber = exports.cleanStringAndLowercase = exports.cleanString = void 0;
4
4
  const cleanString = (str) => {
5
5
  return str.trim();
6
6
  };
7
7
  exports.cleanString = cleanString;
8
- const tzToInt = (str) => {
9
- const trimmed = (0, exports.cleanString)(str);
10
- const split = trimmed.split(':');
11
- return split[0];
12
- };
13
- exports.tzToInt = tzToInt;
14
8
  const cleanStringAndLowercase = (str) => {
15
9
  const trimmed = (0, exports.cleanString)(str);
16
10
  return trimmed.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"/","sources":["utils/input.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;IACjD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7C,MAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB;AAEK,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7D,MAAM,OAAO,GAAW,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC,CAAC;AAHW,QAAA,uBAAuB,2BAGlC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,OAAO,EAAE,CAAC;AACxB,CAAC,CAAC;AAZW,QAAA,gBAAgB,oBAY3B","sourcesContent":["export const cleanString = (str: string): string => {\n return str.trim();\n};\n\nexport const tzToInt = (str: string): string => {\n const trimmed = cleanString(str);\n const split = trimmed.split(':');\n return split[0];\n};\n\nexport const cleanStringAndLowercase = (str: string): string => {\n const trimmed: string = cleanString(str);\n return trimmed.toLowerCase();\n};\n\nexport const cleanPhoneNumber = (str: string): string => {\n const trimmed = str.trim();\n\n if (trimmed.startsWith('+')) {\n return trimmed;\n }\n\n if (trimmed.startsWith('1')) {\n return `+${trimmed}`;\n }\n\n return `+1${trimmed}`;\n};\n"]}
1
+ {"version":3,"file":"input.js","sourceRoot":"/","sources":["utils/input.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;IACjD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7D,MAAM,OAAO,GAAW,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC,CAAC;AAHW,QAAA,uBAAuB,2BAGlC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,OAAO,EAAE,CAAC;AACxB,CAAC,CAAC;AAZW,QAAA,gBAAgB,oBAY3B","sourcesContent":["export const cleanString = (str: string): string => {\n return str.trim();\n};\n\nexport const cleanStringAndLowercase = (str: string): string => {\n const trimmed: string = cleanString(str);\n return trimmed.toLowerCase();\n};\n\nexport const cleanPhoneNumber = (str: string): string => {\n const trimmed = str.trim();\n\n if (trimmed.startsWith('+')) {\n return trimmed;\n }\n\n if (trimmed.startsWith('1')) {\n return `+${trimmed}`;\n }\n\n return `+1${trimmed}`;\n};\n"]}
@@ -2,6 +2,6 @@ export declare class UpdateUserRequestDto {
2
2
  phoneNumber?: string | undefined;
3
3
  fullName?: string | undefined;
4
4
  pushToken?: string | undefined;
5
- tz?: string | undefined;
5
+ tz?: number | undefined;
6
6
  }
7
7
  //# sourceMappingURL=update-user.request.dto.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { IsOptional, IsString } from 'class-validator';
2
+ import { IsNumber, IsOptional, IsString } from 'class-validator';
3
3
  import { ApiProperty } from '@nestjs/swagger';
4
4
  export class UpdateUserRequestDto {
5
5
  }
@@ -23,8 +23,8 @@ __decorate([
23
23
  ], UpdateUserRequestDto.prototype, "pushToken", void 0);
24
24
  __decorate([
25
25
  IsOptional(),
26
- IsString(),
26
+ IsNumber(),
27
27
  ApiProperty(),
28
- __metadata("design:type", String)
28
+ __metadata("design:type", Number)
29
29
  ], UpdateUserRequestDto.prototype, "tz", void 0);
30
30
  //# sourceMappingURL=update-user.request.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-user.request.dto.js","sourceRoot":"/","sources":["user/dtos/update-user.request.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,OAAO,oBAAoB;CAoBhC;AAhBC;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,WAAW,EAAE;;yDACmB;AAKjC;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,WAAW,EAAE;;sDACgB;AAK9B;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,WAAW,EAAE;;uDACiB;AAK/B;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,WAAW,EAAE;;gDACU","sourcesContent":["import { IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class UpdateUserRequestDto {\n @IsOptional()\n @IsString()\n @ApiProperty()\n phoneNumber?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n fullName?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n pushToken?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n tz?: string | undefined;\n}\n"]}
1
+ {"version":3,"file":"update-user.request.dto.js","sourceRoot":"/","sources":["user/dtos/update-user.request.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,OAAO,oBAAoB;CAoBhC;AAhBC;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,WAAW,EAAE;;yDACmB;AAKjC;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,WAAW,EAAE;;sDACgB;AAK9B;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,WAAW,EAAE;;uDACiB;AAK/B;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,WAAW,EAAE;;gDACU","sourcesContent":["import { IsNumber, IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class UpdateUserRequestDto {\n @IsOptional()\n @IsString()\n @ApiProperty()\n phoneNumber?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n fullName?: string | undefined;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n pushToken?: string | undefined;\n\n @IsOptional()\n @IsNumber()\n @ApiProperty()\n tz?: number | undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"user.controller.d.ts","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUnD,qBAEa,cAAc;IAEvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;gBAHV,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU;IAS1B,MAAM,CAAS,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2CrE,KAAK,CAAS,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkCpE,OAAO,CAAY,GAAG,KAAA,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmBpD,IAAI,CACA,GAAG,EAAE,oBAAoB,EACtB,GAAG,KAAA,GACb,OAAO,CAAC,kBAAkB,CAAC;IAoCxB,QAAQ,CAAY,GAAG,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
1
+ {"version":3,"file":"user.controller.d.ts","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD,qBAEa,cAAc;IAEvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;gBAHV,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU;IAS1B,MAAM,CAAS,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2CrE,KAAK,CAAS,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkCpE,OAAO,CAAY,GAAG,KAAA,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmBpD,IAAI,CACA,GAAG,EAAE,oBAAoB,EACtB,GAAG,KAAA,GACb,OAAO,CAAC,kBAAkB,CAAC;IAoCxB,QAAQ,CAAY,GAAG,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
@@ -10,7 +10,7 @@ import { UpdateUserRequestDto } from './dtos/update-user.request.dto';
10
10
  import { RegisterResponseDto } from './dtos/register.response.dto';
11
11
  import { RegisterRequestDto } from './dtos/register.request.dto';
12
12
  import { PushService } from '../push/push.service';
13
- import { cleanPhoneNumber, cleanString, cleanStringAndLowercase, handleError, tzToInt, } from '../utils';
13
+ import { cleanPhoneNumber, cleanString, cleanStringAndLowercase, handleError, } from '../utils';
14
14
  import { AuthGuard } from '../guard';
15
15
  let UserController = class UserController {
16
16
  constructor(userService, authService, pushService, jwtService) {
@@ -84,9 +84,9 @@ let UserController = class UserController {
84
84
  ? cleanStringAndLowercase(dto.fullName)
85
85
  : undefined,
86
86
  pushToken: dto.pushToken ? cleanString(dto.pushToken) : undefined,
87
- tz: dto.tz ? tzToInt(dto.tz) : undefined,
87
+ tz: dto.tz ? dto.tz : undefined,
88
88
  };
89
- const user = await this.userService.update(req.user.userId, Object.assign(Object.assign({}, cleanDto), { tz: parseInt(cleanDto.tz, 10) }));
89
+ const user = await this.userService.update(req.user.userId, cleanDto);
90
90
  if (user.fullName && user.phoneNumber) {
91
91
  await this.userService.update(req.user.userId, {
92
92
  onboardingStatus: OnboardingStatus.COMPLETED,
@@ -1 +1 @@
1
- {"version":3,"file":"user.controller.js","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAQ,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,OAAO,GACR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI9B,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YACU,WAAwB,EACxB,WAAwB,EACxB,WAAwB,EACxB,UAAsB;QAHtB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,eAAU,GAAV,UAAU,CAAY;IAC7B,CAAC;IAQE,AAAN,KAAK,CAAC,MAAM,CAAS,GAAuB;QAC1C,MAAM,UAAU,GAAuB;YACrC,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC;YACzC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;SACpC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,GAAG,GAAY,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAE/D,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,WAAW,CAAC,qBAAqB,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,EAAE,CAAC;gBACzB,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,qBAAqB,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAS,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC/C,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,KAAK,GAAW,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/D,uCACK,IAAI,KACP,KAAK,IACL;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,KAAK,CAAS,GAAuB;QACzC,MAAM,UAAU,GAAuB;YACrC,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC;YACzC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;SAC9B,CAAC;QAEF,MAAM,GAAG,GAAY,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE9D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,GAAS,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE3E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,KAAK,GAAW,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/D,uCACK,IAAI,KACP,KAAK,IACL;IACJ,CAAC;IASK,AAAN,KAAK,CAAC,OAAO,CAAY,GAAG;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAS,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CACvD,GAAG,CAAC,IAAI,CAAC,MAAM,CAChB,CAAC;YAEF,OAAO,IAA0B,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IASK,AAAN,KAAK,CAAC,IAAI,CACA,GAAyB,EACtB,GAAG;QAEd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAyB;gBACrC,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC1B,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC;oBACnC,CAAC,CAAC,SAAS;gBACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACpB,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACvC,CAAC,CAAC,SAAS;gBACb,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;gBACjE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aACzC,CAAC;YAEF,MAAM,IAAI,GAAS,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,kCAC3D,QAAQ,KACX,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,IAC7B,CAAC;YAEH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;oBAC7C,gBAAgB,EAAE,gBAAgB,CAAC,SAAS;iBAC7C,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAA0B,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAQK,AAAN,KAAK,CAAC,QAAQ,CAAY,GAAG;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAS,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CACvD,GAAG,CAAC,IAAI,CAAC,MAAM,CAChB,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAsB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;oBAClE,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC7B,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;CACF,CAAA;AAxJO;IANL,IAAI,CAAC,QAAQ,CAAC;IACd,WAAW,CAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,0BAA0B;QACvC,IAAI,EAAE,mBAAmB;KAC1B,CAAC;IACY,WAAA,IAAI,EAAE,CAAA;;qCAAM,kBAAkB;;4CAmC3C;AAQK;IANL,IAAI,CAAC,OAAO,CAAC;IACb,WAAW,CAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,0BAA0B;QACvC,IAAI,EAAE,mBAAmB;KAC1B,CAAC;IACW,WAAA,IAAI,EAAE,CAAA;;qCAAM,kBAAkB;;2CAyB1C;AASK;IAPL,SAAS,CAAC,SAAS,CAAC;IACpB,GAAG,CAAC,MAAM,CAAC;IACX,WAAW,CAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,qBAAqB;QAClC,IAAI,EAAE,kBAAkB;KACzB,CAAC;IACa,WAAA,OAAO,EAAE,CAAA;;;;6CAUvB;AASK;IAPL,SAAS,CAAC,SAAS,CAAC;IACpB,IAAI,CAAC,QAAQ,CAAC;IACd,WAAW,CAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,wBAAwB;QACrC,IAAI,EAAE,kBAAkB;KACzB,CAAC;IAEC,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,OAAO,EAAE,CAAA;;qCADG,oBAAoB;;0CA8BlC;AAQK;IANL,SAAS,CAAC,SAAS,CAAC;IACpB,IAAI,CAAC,UAAU,CAAC;IAChB,WAAW,CAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,sBAAsB;KACpC,CAAC;IACc,WAAA,OAAO,EAAE,CAAA;;;;8CAgBxB;AArKU,cAAc;IAF1B,OAAO,CAAC,MAAM,CAAC;IACf,UAAU,CAAC,MAAM,CAAC;qCAGM,WAAW;QACX,WAAW;QACX,WAAW;QACZ,UAAU;GALrB,cAAc,CAsK1B","sourcesContent":["import {\n Body,\n Controller,\n Get,\n Post,\n Request,\n UseGuards,\n} from '@nestjs/common';\nimport { JwtService } from '@nestjs/jwt';\nimport { ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { OnboardingStatus, User } from '@prisma/client';\nimport { ExpoPushMessage } from 'expo-server-sdk';\n\nimport { AuthService } from '../auth/auth.service';\nimport { UserService } from './user.service';\nimport { GetUserResponseDto } from './dtos/get-user.response.dto';\nimport { UpdateUserRequestDto } from './dtos/update-user.request.dto';\nimport { RegisterResponseDto } from './dtos/register.response.dto';\nimport { RegisterRequestDto } from './dtos/register.request.dto';\nimport { PushService } from '../push/push.service';\nimport {\n cleanPhoneNumber,\n cleanString,\n cleanStringAndLowercase,\n handleError,\n tzToInt,\n} from '../utils';\nimport { AuthGuard } from '../guard';\n\n@ApiTags('User')\n@Controller('user')\nexport class UserController {\n constructor(\n private userService: UserService,\n private authService: AuthService,\n private pushService: PushService,\n private jwtService: JwtService,\n ) {}\n\n @Post('signup')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async signup(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: cleanString(dto.password),\n };\n\n try {\n const res: boolean = await this.authService.signup(cleanedDTO);\n\n if (!res) {\n handleError('Error creating user');\n }\n } catch (error: any) {\n if (error?.error_message) {\n handleError(error.error_message);\n } else {\n handleError('Error creating user');\n }\n }\n\n const user: User = await this.userService.create({\n email: cleanedDTO.email,\n });\n\n if (!user) {\n handleError('Error creating user');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @Post('login')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async login(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: dto.password.trim(),\n };\n\n const res: boolean = await this.authService.login(cleanedDTO);\n\n if (!res) {\n handleError('Error logging in');\n }\n\n const user: User = await this.userService.findOneByEmail(cleanedDTO.email);\n\n if (!user) {\n handleError('Error logging in');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @UseGuards(AuthGuard)\n @Get('self')\n @ApiResponse({\n status: 200,\n description: 'get self successful',\n type: GetUserResponseDto,\n })\n async getSelf(@Request() req): Promise<GetUserResponseDto> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('update')\n @ApiResponse({\n status: 200,\n description: 'update user successful',\n type: GetUserResponseDto,\n })\n async edit(\n @Body() dto: UpdateUserRequestDto,\n @Request() req,\n ): Promise<GetUserResponseDto> {\n try {\n const cleanDto: UpdateUserRequestDto = {\n phoneNumber: dto.phoneNumber\n ? cleanPhoneNumber(dto.phoneNumber)\n : undefined,\n fullName: dto.fullName\n ? cleanStringAndLowercase(dto.fullName)\n : undefined,\n pushToken: dto.pushToken ? cleanString(dto.pushToken) : undefined,\n tz: dto.tz ? tzToInt(dto.tz) : undefined,\n };\n\n const user: User = await this.userService.update(req.user.userId, {\n ...cleanDto,\n tz: parseInt(cleanDto.tz, 10),\n });\n\n if (user.fullName && user.phoneNumber) {\n await this.userService.update(req.user.userId, {\n onboardingStatus: OnboardingStatus.COMPLETED,\n });\n }\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('pushTest')\n @ApiResponse({\n status: 200,\n description: 'push test successful',\n })\n async pushTest(@Request() req): Promise<void> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n if (user.pushToken) {\n const messages: ExpoPushMessage[] = this.pushService.createMessages({\n body: 'Test push',\n pushTokens: [user.pushToken],\n });\n await this.pushService.sendMessages(messages);\n }\n } catch (error) {\n handleError(error);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"user.controller.js","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Body,\n Controller,\n Get,\n Post,\n Request,\n UseGuards,\n} from '@nestjs/common';\nimport { JwtService } from '@nestjs/jwt';\nimport { ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { OnboardingStatus, User } from '@prisma/client';\nimport { ExpoPushMessage } from 'expo-server-sdk';\n\nimport { AuthService } from '../auth/auth.service';\nimport { UserService } from './user.service';\nimport { GetUserResponseDto } from './dtos/get-user.response.dto';\nimport { UpdateUserRequestDto } from './dtos/update-user.request.dto';\nimport { RegisterResponseDto } from './dtos/register.response.dto';\nimport { RegisterRequestDto } from './dtos/register.request.dto';\nimport { PushService } from '../push/push.service';\nimport {\n cleanPhoneNumber,\n cleanString,\n cleanStringAndLowercase,\n handleError,\n} from '../utils';\nimport { AuthGuard } from '../guard';\n\n@ApiTags('User')\n@Controller('user')\nexport class UserController {\n constructor(\n private userService: UserService,\n private authService: AuthService,\n private pushService: PushService,\n private jwtService: JwtService,\n ) {}\n\n @Post('signup')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async signup(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: cleanString(dto.password),\n };\n\n try {\n const res: boolean = await this.authService.signup(cleanedDTO);\n\n if (!res) {\n handleError('Error creating user');\n }\n } catch (error: any) {\n if (error?.error_message) {\n handleError(error.error_message);\n } else {\n handleError('Error creating user');\n }\n }\n\n const user: User = await this.userService.create({\n email: cleanedDTO.email,\n });\n\n if (!user) {\n handleError('Error creating user');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @Post('login')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async login(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: dto.password.trim(),\n };\n\n const res: boolean = await this.authService.login(cleanedDTO);\n\n if (!res) {\n handleError('Error logging in');\n }\n\n const user: User = await this.userService.findOneByEmail(cleanedDTO.email);\n\n if (!user) {\n handleError('Error logging in');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @UseGuards(AuthGuard)\n @Get('self')\n @ApiResponse({\n status: 200,\n description: 'get self successful',\n type: GetUserResponseDto,\n })\n async getSelf(@Request() req): Promise<GetUserResponseDto> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('update')\n @ApiResponse({\n status: 200,\n description: 'update user successful',\n type: GetUserResponseDto,\n })\n async edit(\n @Body() dto: UpdateUserRequestDto,\n @Request() req,\n ): Promise<GetUserResponseDto> {\n try {\n const cleanDto: UpdateUserRequestDto = {\n phoneNumber: dto.phoneNumber\n ? cleanPhoneNumber(dto.phoneNumber)\n : undefined,\n fullName: dto.fullName\n ? cleanStringAndLowercase(dto.fullName)\n : undefined,\n pushToken: dto.pushToken ? cleanString(dto.pushToken) : undefined,\n tz: dto.tz ? dto.tz : undefined,\n };\n\n const user: User = await this.userService.update(\n req.user.userId,\n cleanDto,\n );\n\n if (user.fullName && user.phoneNumber) {\n await this.userService.update(req.user.userId, {\n onboardingStatus: OnboardingStatus.COMPLETED,\n });\n }\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('pushTest')\n @ApiResponse({\n status: 200,\n description: 'push test successful',\n })\n async pushTest(@Request() req): Promise<void> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n if (user.pushToken) {\n const messages: ExpoPushMessage[] = this.pushService.createMessages({\n body: 'Test push',\n pushTokens: [user.pushToken],\n });\n await this.pushService.sendMessages(messages);\n }\n } catch (error) {\n handleError(error);\n }\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  export declare const cleanString: (str: string) => string;
2
- export declare const tzToInt: (str: string) => string;
3
2
  export declare const cleanStringAndLowercase: (str: string) => string;
4
3
  export declare const cleanPhoneNumber: (str: string) => string;
5
4
  //# sourceMappingURL=input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"/","sources":["utils/input.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,MAEzC,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,MAIrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,MAAM,KAAG,MAGrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,MAY9C,CAAC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"/","sources":["utils/input.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,MAEzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,MAAM,KAAG,MAGrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,MAY9C,CAAC"}
@@ -1,11 +1,6 @@
1
1
  export const cleanString = (str) => {
2
2
  return str.trim();
3
3
  };
4
- export const tzToInt = (str) => {
5
- const trimmed = cleanString(str);
6
- const split = trimmed.split(':');
7
- return split[0];
8
- };
9
4
  export const cleanStringAndLowercase = (str) => {
10
5
  const trimmed = cleanString(str);
11
6
  return trimmed.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"/","sources":["utils/input.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;IACjD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7D,MAAM,OAAO,GAAW,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,OAAO,EAAE,CAAC;AACxB,CAAC,CAAC","sourcesContent":["export const cleanString = (str: string): string => {\n return str.trim();\n};\n\nexport const tzToInt = (str: string): string => {\n const trimmed = cleanString(str);\n const split = trimmed.split(':');\n return split[0];\n};\n\nexport const cleanStringAndLowercase = (str: string): string => {\n const trimmed: string = cleanString(str);\n return trimmed.toLowerCase();\n};\n\nexport const cleanPhoneNumber = (str: string): string => {\n const trimmed = str.trim();\n\n if (trimmed.startsWith('+')) {\n return trimmed;\n }\n\n if (trimmed.startsWith('1')) {\n return `+${trimmed}`;\n }\n\n return `+1${trimmed}`;\n};\n"]}
1
+ {"version":3,"file":"input.js","sourceRoot":"/","sources":["utils/input.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;IACjD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7D,MAAM,OAAO,GAAW,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,OAAO,EAAE,CAAC;AACxB,CAAC,CAAC","sourcesContent":["export const cleanString = (str: string): string => {\n return str.trim();\n};\n\nexport const cleanStringAndLowercase = (str: string): string => {\n const trimmed: string = cleanString(str);\n return trimmed.toLowerCase();\n};\n\nexport const cleanPhoneNumber = (str: string): string => {\n const trimmed = str.trim();\n\n if (trimmed.startsWith('+')) {\n return trimmed;\n }\n\n if (trimmed.startsWith('1')) {\n return `+${trimmed}`;\n }\n\n return `+1${trimmed}`;\n};\n"]}