MIF_E31221222/sigap-website-v2/app/(auth-pages)/action.ts

58 lines
1.4 KiB
TypeScript

"use server";
import { SignInFormData } from "@/src/models/auth/sign-in.model";
import { authRepository } from "@/src/repositories/authentication.repository";
export async function signIn(
data: SignInFormData
): Promise<{ success: boolean; message: string }> {
try {
await authRepository.signIn(data);
return { success: true, message: "Check your email for the login link!" };
} catch (error) {
console.error("Authentication error:", error);
return {
success: false,
message:
error instanceof Error
? error.message
: "Authentication failed. Please try again.",
};
}
}
export async function signOut(): Promise<{
success: boolean;
message: string;
}> {
try {
await authRepository.signOut();
return { success: true, message: "You have been signed out." };
} catch (error) {
console.error("Sign out error:", error);
return {
success: false,
message:
error instanceof Error
? error.message
: "Sign out failed. Please try again.",
};
}
}
export async function getUser() {
try {
const user = await authRepository.getUser();
return { success: true, user };
} catch (error) {
console.error("Get user error:", error);
return {
success: false,
message:
error instanceof Error
? error.message
: "Failed to get user information.",
};
}
}