|
@@ -10,25 +10,18 @@ import {
|
|
|
import {
|
|
import {
|
|
|
RegisterInput, RegisterResult
|
|
RegisterInput, RegisterResult
|
|
|
} from "./types";
|
|
} from "./types";
|
|
|
-
|
|
|
|
|
-/* const isStrongPassword = (password: string): { valid: boolean; message: string } => {
|
|
|
|
|
- if (password.length < 8) return { message: "Password must be at least 8 characters", valid: false };
|
|
|
|
|
- if (!/[A-Z]/.test(password)) return { message: "Password must contain at least 1 uppercase letter", valid: false };
|
|
|
|
|
- if (!/[a-z]/.test(password)) return { message: "Password must contain at least 1 lowercase letter", valid: false };
|
|
|
|
|
- if (!/[0-9]/.test(password)) return { message: "Password must contain at least 1 number", valid: false };
|
|
|
|
|
- if (!/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password)) return { message: "Password must contain at least 1 special character", valid: false };
|
|
|
|
|
- return { message: "", valid: true };
|
|
|
|
|
-}; */
|
|
|
|
|
|
|
+import {
|
|
|
|
|
+ formatValidationErrors
|
|
|
|
|
+} from "../../../utils";
|
|
|
|
|
|
|
|
export const register = async (input: RegisterInput): Promise<RegisterResult> => {
|
|
export const register = async (input: RegisterInput): Promise<RegisterResult> => {
|
|
|
const dto = plainToInstance(RegisterInput, input);
|
|
const dto = plainToInstance(RegisterInput, input);
|
|
|
const errors = await validate(dto);
|
|
const errors = await validate(dto);
|
|
|
|
|
|
|
|
if (errors.length > 0) {
|
|
if (errors.length > 0) {
|
|
|
- const message = Object.values(errors[0].constraints!)[0];
|
|
|
|
|
return {
|
|
return {
|
|
|
|
|
+ message: formatValidationErrors(errors),
|
|
|
code: 400,
|
|
code: 400,
|
|
|
- message,
|
|
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -44,10 +37,9 @@ export const register = async (input: RegisterInput): Promise<RegisterResult> =>
|
|
|
const existingUser = await User.findOne({
|
|
const existingUser = await User.findOne({
|
|
|
mail
|
|
mail
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
if (existingUser) {
|
|
if (existingUser) {
|
|
|
return {
|
|
return {
|
|
|
- message: "Email already in use",
|
|
|
|
|
|
|
+ message: "email-already-in-use",
|
|
|
code: 409
|
|
code: 409
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
@@ -55,10 +47,9 @@ export const register = async (input: RegisterInput): Promise<RegisterResult> =>
|
|
|
const existingPhone = await User.findOne({
|
|
const existingPhone = await User.findOne({
|
|
|
phoneNumber
|
|
phoneNumber
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
if (existingPhone) {
|
|
if (existingPhone) {
|
|
|
return {
|
|
return {
|
|
|
- message: "Phone number already in use",
|
|
|
|
|
|
|
+ message: "phone-already-in-use",
|
|
|
code: 409
|
|
code: 409
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
@@ -74,7 +65,7 @@ export const register = async (input: RegisterInput): Promise<RegisterResult> =>
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
- message: "Registration successful",
|
|
|
|
|
|
|
+ message: "registration-successful",
|
|
|
code: 201
|
|
code: 201
|
|
|
};
|
|
};
|
|
|
};
|
|
};
|