"use server";

import { BlogPost } from "@/components/blog/types";

type PostsResponse = {
  data: BlogPost[];
  error: string | null;
};

export async function getPosts(): Promise<PostsResponse> {
  try {
    const res = await fetch(`${process.env.NEXT_PUBLIC_API_BASE_URL}posts`, {
      cache: "no-store",
    });
    const error = `Hubo un error al cargar los posteos. Vuelva a intentarlo más tarde.`;
    if (!res.ok) {
      return {
        data: [],
        error,
      };
    }

    const json = await res.json();
    if (json.data.length === 0) throw new Error(error);
    return {
      data: json.data ?? [],
      error: null,
    };
  } catch (error) {
    return {
      data: [],
      error: error instanceof Error ? error.message : "Unknown error",
    };
  }
}
