|
|
@@ -1,6 +1,7 @@
|
|
|
import {
|
|
|
User
|
|
|
} from "../../../models/User";
|
|
|
+import smsSend from "../smsSend";
|
|
|
import {
|
|
|
RegisterInput,
|
|
|
RegisterResult
|
|
|
@@ -22,50 +23,73 @@ const generateSlug = (companyName: string): string => {
|
|
|
};
|
|
|
|
|
|
const register = async (input: RegisterInput): Promise<RegisterResult> => {
|
|
|
- const {
|
|
|
- companyName,
|
|
|
- phoneNumber,
|
|
|
- firstName,
|
|
|
- lastName,
|
|
|
- password,
|
|
|
- mail
|
|
|
- } = input;
|
|
|
+ try {
|
|
|
+ const {
|
|
|
+ companyName,
|
|
|
+ phoneNumber,
|
|
|
+ firstName,
|
|
|
+ lastName,
|
|
|
+ password,
|
|
|
+ mail
|
|
|
+ } = input;
|
|
|
+
|
|
|
+ const existingUser = await User.findOne({
|
|
|
+ mail
|
|
|
+ });
|
|
|
+ if (existingUser) {
|
|
|
+ return {
|
|
|
+ message: "email-already-in-use",
|
|
|
+ code: 409
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ const existingPhone = await User.findOne({
|
|
|
+ phoneNumber
|
|
|
+ });
|
|
|
+ if (existingPhone) {
|
|
|
+ return {
|
|
|
+ message: "phone-already-in-use",
|
|
|
+ code: 409
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ const slug = generateSlug(companyName);
|
|
|
+ const existingSlug = await User.findOne({
|
|
|
+ slug
|
|
|
+ });
|
|
|
+
|
|
|
+ if (existingSlug) {
|
|
|
+ return {
|
|
|
+ message: "company-name-already-in-use",
|
|
|
+ code: 409
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ const newUser = await User.create({
|
|
|
+ fullName: `${firstName} ${lastName}`,
|
|
|
+ phoneNumber,
|
|
|
+ companyName,
|
|
|
+ firstName,
|
|
|
+ lastName,
|
|
|
+ password,
|
|
|
+ slug,
|
|
|
+ mail
|
|
|
+ });
|
|
|
+ await smsSend({
|
|
|
+ userID: newUser._id.toString()
|
|
|
+ });
|
|
|
|
|
|
- const existingUser = await User.findOne({
|
|
|
- mail
|
|
|
- });
|
|
|
- if (existingUser) {
|
|
|
return {
|
|
|
- message: "email-already-in-use",
|
|
|
- code: 409
|
|
|
+ message: "registration-successful-please-verify-your-phone",
|
|
|
+ code: 201
|
|
|
};
|
|
|
- }
|
|
|
-
|
|
|
- const existingPhone = await User.findOne({
|
|
|
- phoneNumber
|
|
|
- });
|
|
|
- if (existingPhone) {
|
|
|
+ } catch (error) {
|
|
|
+ console.error("FinishMailVerify error:", error);
|
|
|
return {
|
|
|
- message: "phone-already-in-use",
|
|
|
- code: 409
|
|
|
+ message: "internal-server-error",
|
|
|
+ code: 500
|
|
|
};
|
|
|
}
|
|
|
-
|
|
|
- await User.create({
|
|
|
- fullName: `${firstName} ${lastName}`,
|
|
|
- slug: generateSlug(companyName),
|
|
|
- phoneNumber,
|
|
|
- companyName,
|
|
|
- firstName,
|
|
|
- lastName,
|
|
|
- password,
|
|
|
- mail
|
|
|
- });
|
|
|
-
|
|
|
- return {
|
|
|
- message: "registration-successful",
|
|
|
- code: 201
|
|
|
- };
|
|
|
};
|
|
|
|
|
|
export default register;
|