From 23e51f788f4810ac0f6f54311d4415d25c21a91f Mon Sep 17 00:00:00 2001 From: Braulio Date: Tue, 24 Feb 2026 16:17:55 +0100 Subject: [PATCH] update api --- front/src/pods/embalse/api/embalse.api.ts | 47 +++++++++++++++-------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/front/src/pods/embalse/api/embalse.api.ts b/front/src/pods/embalse/api/embalse.api.ts index c1a6ce3..8003a93 100644 --- a/front/src/pods/embalse/api/embalse.api.ts +++ b/front/src/pods/embalse/api/embalse.api.ts @@ -3,22 +3,39 @@ import { unstable_cache } from "next/cache"; import type { ReservoirInfo } from "./embalse.api-model"; import { contentIslandClient } from "@/lib"; +const fetchReservoirInfoBySlug = async ( + slug: string +): Promise => { + const result = await contentIslandClient.getContent({ + language: "es", + "fields.slug": slug, + }); + + if (!result) { + throw new Error(`Empty reservoir info for slug: ${slug}`); + } + + return result; +}; + +const fetchReservoirInfoBySlugCached = unstable_cache( + fetchReservoirInfoBySlug, + ["reservoir-by-slug"], + { revalidate: 60 } +); + /** * Cached version of getReservoirInfoBySlug. * Revalidates every 60 seconds. + * Only caches when data is available. */ -export const getReservoirInfoBySlugCached = unstable_cache( - async (slug: string): Promise => { - try { - return await contentIslandClient.getContent({ - language: "es", - "fields.slug": slug, - }); - } catch (error) { - console.warn(`Warning reservoir info for slug not available: ${slug}`); - return null; - } - }, - ["reservoir-by-slug"], - { revalidate: 60 }, // Check timing at least 1 hour -); +export const getReservoirInfoBySlugCached = async ( + slug: string +): Promise => { + try { + return await fetchReservoirInfoBySlugCached(slug); + } catch (error) { + console.warn(`Warning reservoir info for slug not available: ${slug}`); + return null; + } +};