import {footerQuery} from 'services/wpgraphql';
import {FooterLink, FooterSocialLink} from 'src/interfaces';

export const footerProps = async (): Promise<any> => {
  const footerData = await footerQuery;
  if (!footerData) return;
  return {
    english: {
      ...formatEnglishData(footerData.data.post.acf_footer),
    },
    spanish: {
      ...formatSpanishData(footerData.data.post.acf_footer),
    },
  };
};

const formatEnglishData = (data: {
  footerLinks: FooterLink[];
  footerSocialLinks: FooterSocialLink[];
  footerAppLinks: FooterSocialLink[];
  copy1En: string;
  copy2En: string;
}) => {
  const {footerLinks, footerSocialLinks, footerAppLinks, copy1En, copy2En} = data;

  const links = footerLinks.map(({linkUrl, linkEn}) => ({
    linkUrl: linkUrl,
    linkText: linkEn,
  }));

  return {
    links: links,
    social: footerSocialLinks,
    app: footerAppLinks,
    copy1: copy1En,
    copy2: copy2En,
  };
};

const formatSpanishData = (data: {
  footerLinks: FooterLink[];
  footerSocialLinks: FooterSocialLink[];
  footerAppLinks: FooterSocialLink[];
  copy1Sp: string;
  copy2Sp: string;
}) => {
  const {footerLinks, footerSocialLinks, footerAppLinks, copy1Sp, copy2Sp} = data;

  const links = footerLinks.map(({linkUrl, linkSp}) => ({
    linkUrl: linkUrl,
    linkText: linkSp,
  }));

  return {
    links: links,
    social: footerSocialLinks,
    app: footerAppLinks,
    copy1: copy1Sp,
    copy2: copy2Sp,
  };
};
