diff --git a/apps/infoalloggi/src/pages/annuncio/[cod].tsx b/apps/infoalloggi/src/pages/annuncio/[cod].tsx index 2bc8fb1..df6176e 100644 --- a/apps/infoalloggi/src/pages/annuncio/[cod].tsx +++ b/apps/infoalloggi/src/pages/annuncio/[cod].tsx @@ -56,6 +56,7 @@ import { TouchProvider } from "~/components/custom_ui/HybridTooltip"; import InformationBubble from "~/components/InformationBubble"; import TipologiaPosizioneEnum from "~/schemas/public/TipologiaPosizioneEnum"; import { useEffect, useState } from "react"; +import { env } from "~/env.mjs"; type AnnuncioProps = { cod: string; @@ -106,6 +107,12 @@ const AnnuncioDettaglio: NextPage = ({
{`${cod} | ${titolo}`} + + + {data.titolo_it && ( = ({ {data.coverImage && ( )} diff --git a/apps/infoalloggi/src/pages/api/og/[...slug].ts b/apps/infoalloggi/src/pages/api/og/[...slug].ts new file mode 100644 index 0000000..92af905 --- /dev/null +++ b/apps/infoalloggi/src/pages/api/og/[...slug].ts @@ -0,0 +1,32 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse, +) { + if (req.method !== "GET") { + return res.status(405).json({ error: "Method Not Allowed" }); + } + const slug = req.query; + console.log("Fetching image:", slug); + const image = Array.isArray(slug.slug) ? slug.slug.join("/") : slug.slug; + if (typeof image !== "string") { + return res.status(400).json({ error: "Invalid image parameter" }); + } + const imageUrl = `${process.env.BACKENDSERVER_URL}/images/get/${image}`; + try { + const response = await fetch(imageUrl); + if (!response.ok) { + return res + .status(response.status) + .json({ error: "Failed to fetch image" }); + } + const imageBuffer = await response.arrayBuffer(); + res.setHeader("Content-Type", "image/png"); + res.setHeader("Cache-Control", "public, max-age=31536000, immutable"); + res.send(Buffer.from(imageBuffer)); + } catch (error) { + console.error("Error fetching image:", error); + return res.status(500).json({ error: "Internal Server Error" }); + } +} diff --git a/apps/infoalloggi/src/server/controllers/annunci.controller.ts b/apps/infoalloggi/src/server/controllers/annunci.controller.ts index cd783aa..2185602 100644 --- a/apps/infoalloggi/src/server/controllers/annunci.controller.ts +++ b/apps/infoalloggi/src/server/controllers/annunci.controller.ts @@ -82,7 +82,7 @@ export const getAnnunciByCod = async ({ } const coverImage = annuncio.url_immagini ? annuncio.url_immagini[0] - ? createSrc(annuncio.url_immagini[0]) + ? annuncio.url_immagini[0] : null : null;