"use server";

import { AppError } from "@/core/errors/app-error";
import { PrismaUsersRepository } from "../repositories/prisma-users-repository";
import { RegisterUserUseCase } from "../use-cases/register-user-use-case";

export async function registerAction(body: unknown) {
  try {
    const registerUserUseCase = new RegisterUserUseCase(new PrismaUsersRepository());
    const { user } = await registerUserUseCase.execute({ body });
    return { user };
  } catch (error) {
    if (error instanceof AppError) {
      throw new Error(error.message);
    }
    throw error;
  }
}
