58 lines
1.4 KiB
TypeScript
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.",
|
|
};
|
|
}
|
|
}
|