import { toHeroBanner } from '@/adapters/toHeroBanner.adapter';
import { getHeroBannersRequest } from '@/api/heroBanners';
import { HeroBannerDTO, HeroBannerImage } from '@/types/hero-bannerDTO';

type ServiceResponse =
  | { error: false; images: HeroBannerImage[]; title: string }
  | { error: true; images: null; title: null };
type ResponseType = {
  title: string;
  heroBanners: HeroBannerDTO[];
};

export const getHeroBanners = async (): Promise<ServiceResponse> => {
  try {
    const response: ResponseType = await getHeroBannersRequest();
    return {
      error: false,
      images: response.heroBanners.map((image) => toHeroBanner(image)),
      title: response.title,
    };
  } catch (err) {
    console.error(err);
    return { error: true, images: null, title: null };
  }
};
