From ab81df7f3d317281a05caec18e2cfd89dc26bc7a Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Tue, 28 Nov 2023 15:09:04 +0100 Subject: refactor(services): avoid nested fetchers If we use fetchPostsCount inside fetchAllPostsSlugs, we might have problems to test fetchAllPostsSlugs failure. So it is better to let the consumer pass the posts count as an argument. The same applies to thematics and topics. --- src/pages/article/[slug].tsx | 4 +++- src/pages/sujet/[slug].tsx | 3 ++- src/pages/thematique/[slug].tsx | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'src/pages') diff --git a/src/pages/article/[slug].tsx b/src/pages/article/[slug].tsx index f228ff0..04ae617 100644 --- a/src/pages/article/[slug].tsx +++ b/src/pages/article/[slug].tsx @@ -26,6 +26,7 @@ import { fetchAllPostsSlugs, fetchCommentsList, fetchPost, + fetchPostsCount, } from '../../services/graphql'; import styles from '../../styles/pages/article.module.scss'; import type { Article, NextPageWithLayout, SingleComment } from '../../types'; @@ -333,7 +334,8 @@ export const getStaticProps: GetStaticProps = async ({ }; export const getStaticPaths: GetStaticPaths = async () => { - const slugs = await fetchAllPostsSlugs(); + const postsCount = await fetchPostsCount(); + const slugs = await fetchAllPostsSlugs(postsCount); const paths = slugs.map((slug) => { return { params: { slug } }; }); diff --git a/src/pages/sujet/[slug].tsx b/src/pages/sujet/[slug].tsx index aed7ea9..c63906f 100644 --- a/src/pages/sujet/[slug].tsx +++ b/src/pages/sujet/[slug].tsx @@ -231,7 +231,8 @@ export const getStaticProps: GetStaticProps = async ({ }; export const getStaticPaths: GetStaticPaths = async () => { - const slugs = await fetchAllTopicsSlugs(); + const topicsCount = await fetchTopicsCount(); + const slugs = await fetchAllTopicsSlugs(topicsCount); const paths = slugs.map((slug) => { return { params: { slug } }; }); diff --git a/src/pages/thematique/[slug].tsx b/src/pages/thematique/[slug].tsx index a44c98b..f8c3404 100644 --- a/src/pages/thematique/[slug].tsx +++ b/src/pages/thematique/[slug].tsx @@ -216,7 +216,8 @@ export const getStaticProps: GetStaticProps = async ({ }; export const getStaticPaths: GetStaticPaths = async () => { - const slugs = await fetchAllThematicsSlugs(); + const thematicsCount = await fetchThematicsCount(); + const slugs = await fetchAllThematicsSlugs(thematicsCount); const paths = slugs.map((slug) => { return { params: { slug } }; }); -- cgit v1.2.3