feat: implement user registration and OTP verification flow with backend integration
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 4m29s

This commit is contained in:
2025-04-17 13:02:35 +05:00
parent de1e842145
commit 0f9d1107de
5 changed files with 189 additions and 29 deletions

View File

@ -1,7 +1,8 @@
"use server";
import { signUpFormSchema } from "@/lib/schemas";
import { checkIdOrPhone } from "@/queries/authentication";
import { backendRegister, checkIdOrPhone } from "@/queries/authentication";
import { tryCatch } from "@/utils/tryCatch";
import { redirect } from "next/navigation";
import { z } from "zod";
const formSchema = z.object({
@ -117,22 +118,28 @@ export async function signup(_actionState: ActionState, formData: FormData) {
db_error: "phone_number",
};
}
// const newUser = await prisma.user.create({
// data: {
// name: parsedData.data.name,
// islandId: parsedData.data.island_id,
// atollId: parsedData.data.atoll_id,
// address: parsedData.data.address,
// id_card: parsedData.data.id_card,
// dob: new Date(parsedData.data.dob),
// role: "USER",
// accNo: parsedData.data.accNo,
// phoneNumber: parsedData.data.phone_number,
// },
// });
// const isValidPerson = await VerifyUserDetails({ user: newUser });
const [signupError, signupResponse] = await tryCatch(
backendRegister({
payload: {
firstname: parsedData.data.name,
lastname: parsedData.data.name,
username: parsedData.data.phone_number,
address: parsedData.data.address,
id_card: parsedData.data.id_card,
dob: new Date(parsedData.data.dob).toISOString().split("T")[0],
mobile: parsedData.data.phone_number,
island: Number.parseInt(parsedData.data.island_id),
atoll: Number.parseInt(parsedData.data.atoll_id),
acc_no: parsedData.data.accNo,
terms_accepted: parsedData.data.terms,
policy_accepted: parsedData.data.policy,
},
}),
);
if (signupError) {
throw new Error(signupError.message);
}
console.log("SIGNUP RESPONSE", signupResponse);
// if (!isValidPerson) {
// await SendUserRejectionDetailSMS({
// details: `
@ -162,9 +169,9 @@ export async function signup(_actionState: ActionState, formData: FormData) {
// phoneNumber: newUser.phoneNumber,
// });
// }
// redirect(
// `/verify-otp?phone_number=${encodeURIComponent(newUser.phoneNumber)}`,
// );
redirect(
`/auth/verify-otp-registration?phone_number=${encodeURIComponent(signupResponse.t_username)}`,
);
return { message: "User created successfully" };
}