Add SKIP_REDIS check in getTilesClient and handle KeyDB client initialization

This commit is contained in:
Marco Pedone 2025-08-04 19:00:53 +02:00
parent ef58dc618c
commit fb3f43f736

View file

@ -2,12 +2,14 @@ import type { NextApiRequest, NextApiResponse } from "next";
import Redis from "ioredis"; import Redis from "ioredis";
import { env } from "~/env.mjs"; import { env } from "~/env.mjs";
let tiles: Redis | null = null; let tiles: Redis | null = null;
export function getTilesClient() { export function getTilesClient() {
if (env.SKIP_REDIS) {
return null;
}
if (!tiles) { if (!tiles) {
tiles = new Redis(`keydb://${env.TILES_URL}` ); tiles = new Redis(`keydb://${env.TILES_URL}`);
} }
return tiles; return tiles;
} }
@ -24,7 +26,6 @@ export default async function handler(
) { ) {
const { slug } = req.query; const { slug } = req.query;
if (!slug) { if (!slug) {
return res.status(400).json({ return res.status(400).json({
error: "Slug is required", error: "Slug is required",
@ -48,6 +49,11 @@ export default async function handler(
const cacheKey = `tile:${z}:${x}:${y}`; const cacheKey = `tile:${z}:${x}:${y}`;
const tiles = getTilesClient(); const tiles = getTilesClient();
if (!tiles) {
return res.status(500).json({
error: "KeyDB client is not initialized",
});
}
const cachedTile = await tiles.getBuffer(cacheKey); const cachedTile = await tiles.getBuffer(cacheKey);
if (cachedTile) { if (cachedTile) {