Spaces:
Runtime error
Runtime error
File size: 1,225 Bytes
4782147 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | "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",
};
}
}
|