super-harness / src /app /api /auth /actions.ts
Cyber Catalyst Team
Deploy to HF Spaces with LFS
4782147
Raw
History Blame Contribute Delete
1.23 kB
"use server";
import { auth } from "@/lib/auth/server";
import { BasicUser, UserZodSchema } from "app-types/user";
import { userRepository } from "lib/db/repository";
import { ActionState } from "lib/action-utils";
import { headers } from "next/headers";
export async function existsByEmailAction(email: string) {
const exists = await userRepository.existsByEmail(email);
return exists;
}
type SignUpActionResponse = ActionState & {
user?: BasicUser;
};
export async function signUpAction(data: {
email: string;
name: string;
password: string;
}): Promise<SignUpActionResponse> {
const { success, data: parsedData } = UserZodSchema.safeParse(data);
if (!success) {
return {
success: false,
message: "Invalid data",
};
}
try {
const { user } = await auth.api.signUpEmail({
body: {
email: parsedData.email,
password: parsedData.password,
name: parsedData.name,
},
headers: await headers(),
});
return {
user,
success: true,
message: "Successfully signed up",
};
} catch (error) {
return {
success: false,
message: error instanceof Error ? error.message : "Failed to sign up",
};
}
}