From 7688917ab353c3fdabcac46cf18c0f3f90e493f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20L=C3=B3pez?= Date: Tue, 23 Jan 2024 17:29:58 +0100 Subject: [PATCH] Remove confirm from ValidatePasswordDto --- .../src/components/Auth/ResetPasswordForm.jsx | 3 +- .../client/src/components/Auth/SignUpForm.jsx | 4 +- .../job-launcher/client/src/types/index.ts | 2 - .../server/src/common/validators/confirm.ts | 67 ------------------- .../server/src/common/validators/index.ts | 1 - .../server/src/modules/auth/auth.dto.ts | 6 +- .../src/modules/auth/auth.service.spec.ts | 2 - .../src/modules/user/user.service.spec.ts | 2 - 8 files changed, 4 insertions(+), 83 deletions(-) delete mode 100644 packages/apps/job-launcher/server/src/common/validators/confirm.ts diff --git a/packages/apps/job-launcher/client/src/components/Auth/ResetPasswordForm.jsx b/packages/apps/job-launcher/client/src/components/Auth/ResetPasswordForm.jsx index b5f8b73704..c1920e83e3 100644 --- a/packages/apps/job-launcher/client/src/components/Auth/ResetPasswordForm.jsx +++ b/packages/apps/job-launcher/client/src/components/Auth/ResetPasswordForm.jsx @@ -22,12 +22,11 @@ export const ResetPasswordForm = () => { const navigate = useNavigate(); const token = new URLSearchParams(window.location.search).get('token'); - const handleResetPassword = async ({ password, repeatPassword }) => { + const handleResetPassword = async ({ password }) => { setIsLoading(true); try { await authService.resetPassword({ password, - confirm: repeatPassword, token, }); diff --git a/packages/apps/job-launcher/client/src/components/Auth/SignUpForm.jsx b/packages/apps/job-launcher/client/src/components/Auth/SignUpForm.jsx index 932c208c47..86d5b89f79 100644 --- a/packages/apps/job-launcher/client/src/components/Auth/SignUpForm.jsx +++ b/packages/apps/job-launcher/client/src/components/Auth/SignUpForm.jsx @@ -24,10 +24,10 @@ export const SignUpForm = ({ onFinish, onError }) => { const [email, setEmail] = useState(''); const [alertMsg, setAlertMsg] = useState(''); - const handleRegister = async ({ email, password, confirm }) => { + const handleRegister = async ({ email, password }) => { setIsLoading(true); try { - await authService.signUp({ email, password, confirm }); + await authService.signUp({ email, password }); setEmail(email); setIsSuccess(true); } catch (err) { diff --git a/packages/apps/job-launcher/client/src/types/index.ts b/packages/apps/job-launcher/client/src/types/index.ts index 1bb50b9619..445e5e5c3f 100644 --- a/packages/apps/job-launcher/client/src/types/index.ts +++ b/packages/apps/job-launcher/client/src/types/index.ts @@ -8,7 +8,6 @@ export type SignInRequest = { export type SignUpRequest = { email: string; password: string; - confirm: string; }; export type SignUpResponse = { @@ -18,7 +17,6 @@ export type SignUpResponse = { export type ResetPasswordRequest = { password: string; - confirm: string; token: string; }; diff --git a/packages/apps/job-launcher/server/src/common/validators/confirm.ts b/packages/apps/job-launcher/server/src/common/validators/confirm.ts deleted file mode 100644 index d7f54c87bd..0000000000 --- a/packages/apps/job-launcher/server/src/common/validators/confirm.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { - registerDecorator, - ValidationArguments, - ValidationOptions, - ValidatorConstraint, - ValidatorConstraintInterface, -} from 'class-validator'; - -interface IConfirmConstraints { - required: boolean; - relatedPropertyName: string; -} - -@ValidatorConstraint() -class ValidateConfirm implements ValidatorConstraintInterface { - private reason: string; - - public validate(value: unknown, args: ValidationArguments): boolean { - this.reason = ValidateConfirm.isValid(value, args); - return !this.reason; - } - - public defaultMessage(): string { - return this.reason; - } - - private static isValid(value: unknown, args: ValidationArguments): string { - const { relatedPropertyName = 'password' }: IConfirmConstraints = - args.constraints[0]; - - const relatedValue = (args.object as any)[relatedPropertyName]; - - if (typeof value === 'undefined' || value === '') { - if (relatedValue) { - return 'valueMissing'; - } else { - return ''; - } - } - - if (typeof value !== 'string') { - return 'typeMismatch'; - } - - if (relatedValue !== value) { - return 'badInput'; - } - - return ''; - } -} - -export function IsConfirm( - constraints: Partial = {}, - validationOptions?: ValidationOptions, -) { - return (object: Record, propertyName: string): void => { - registerDecorator({ - name: 'isConfirm', - target: object.constructor, - propertyName, - constraints: [constraints], - options: validationOptions, - validator: ValidateConfirm, - }); - }; -} diff --git a/packages/apps/job-launcher/server/src/common/validators/index.ts b/packages/apps/job-launcher/server/src/common/validators/index.ts index 4bf70483ee..47b7e7a263 100644 --- a/packages/apps/job-launcher/server/src/common/validators/index.ts +++ b/packages/apps/job-launcher/server/src/common/validators/index.ts @@ -1,2 +1 @@ export * from './password'; -export * from './confirm'; diff --git a/packages/apps/job-launcher/server/src/modules/auth/auth.dto.ts b/packages/apps/job-launcher/server/src/modules/auth/auth.dto.ts index 467120f6c4..5fd2da8c76 100644 --- a/packages/apps/job-launcher/server/src/modules/auth/auth.dto.ts +++ b/packages/apps/job-launcher/server/src/modules/auth/auth.dto.ts @@ -1,7 +1,7 @@ import { ApiProperty } from '@nestjs/swagger'; import { Transform } from 'class-transformer'; import { IsEmail, IsString } from 'class-validator'; -import { IsConfirm, IsPassword } from '../../common/validators'; +import { IsPassword } from '../../common/validators'; import { TokenType } from '../auth/token.entity'; import { UserEntity } from '../user/user.entity'; @@ -27,10 +27,6 @@ export class ValidatePasswordDto { @ApiProperty() @IsPassword() public password: string; - - @ApiProperty() - @IsConfirm() - public confirm: string; } export class ResendEmailVerificationDto { diff --git a/packages/apps/job-launcher/server/src/modules/auth/auth.service.spec.ts b/packages/apps/job-launcher/server/src/modules/auth/auth.service.spec.ts index ebcd314b58..cdc3d323e6 100644 --- a/packages/apps/job-launcher/server/src/modules/auth/auth.service.spec.ts +++ b/packages/apps/job-launcher/server/src/modules/auth/auth.service.spec.ts @@ -469,7 +469,6 @@ describe('AuthService', () => { authService.restorePassword({ token: 'token', password: 'password', - confirm: 'password', }), ).rejects.toThrow(NotFoundException); }); @@ -485,7 +484,6 @@ describe('AuthService', () => { await authService.restorePassword({ token: 'token', password: 'password', - confirm: 'password', }); expect(updatePasswordMock).toHaveBeenCalled(); diff --git a/packages/apps/job-launcher/server/src/modules/user/user.service.spec.ts b/packages/apps/job-launcher/server/src/modules/user/user.service.spec.ts index 6be3aaf3d9..3a244f34d6 100644 --- a/packages/apps/job-launcher/server/src/modules/user/user.service.spec.ts +++ b/packages/apps/job-launcher/server/src/modules/user/user.service.spec.ts @@ -70,7 +70,6 @@ describe('UserService', () => { const dto: UserCreateDto = { email: 'test@example.com', password: 'password123', - confirm: 'password123', }; const hashedPassword = '$2b$12$Z02o9/Ay7CT0n99icApZYORH8iJI9VGtl3mju7d0c4SdDDujhSzOa'; @@ -102,7 +101,6 @@ describe('UserService', () => { const dto: UserCreateDto = { email: 'test@example.com', password: 'password123', - confirm: 'password123', }; jest