Files
setrip/features/auth/actions.ts
T

32 lines
931 B
TypeScript

"use server";
import { registerSchema } from "./schemas";
import { authService } from "@/server/services/auth.service";
export async function registerAction(formData: FormData) {
const raw = {
name: formData.get("name") as string,
email: formData.get("email") as string,
password: formData.get("password") as string,
confirmPassword: formData.get("confirmPassword") as string,
acceptedTermsAndPrivacy: formData.get("acceptedTermsAndPrivacy") === "on",
};
const result = registerSchema.safeParse(raw);
if (!result.success) {
return { error: result.error.issues[0].message };
}
try {
await authService.register({
name: result.data.name,
email: result.data.email,
password: result.data.password,
acceptedTermsAndPrivacy: result.data.acceptedTermsAndPrivacy,
});
return { success: true };
} catch (err) {
return { error: (err as Error).message };
}
}