"use server";

import {
  ConvertFormdataToJSON,
  ServerAction,
  ServerResponse,
} from "@/lib/actions";
import fetchAllProjects, { fetchProject } from "./util/_fetchProjects";

export default async function fetchSubdomainsInfo(formData?: FormData) {
  const { error, con, dict } = await ServerAction();

  if (error) {
    return ServerResponse({
      operation: false,
      data: error,
    });
  }

  try {
    const { name, ...filters } = ConvertFormdataToJSON(formData);

    const rFetchProjects = name
      ? await fetchProject(con, name, dict)
      : await fetchAllProjects(con, filters);

    if (!rFetchProjects.operation) {
      return ServerResponse({
        operation: false,
        message: rFetchProjects.message,
      });
    }

    return ServerResponse({
      operation: true,
      data: rFetchProjects.data,
    });
  } catch (error) {
    return ServerResponse({
      operation: false,
      message: dict.alerts.general.unexpected_error,
      data: error,
    });
  } finally {
    con.release();
  }
}
