diff --git a/app/api/views/route.ts b/app/api/views/route.ts index 8564b90..ee0b9df 100644 --- a/app/api/views/route.ts +++ b/app/api/views/route.ts @@ -4,23 +4,23 @@ import { getRedisClient } from "../../../lib/redis"; export const dynamic = 'force-dynamic'; // Отключаем кеширование export async function GET() { - try { - const redis = getRedisClient(); - const projects = await redis.keys("projects:*:views"); - const viewsEntries = await redis.mget(...projects); - - const viewsData = projects.reduce((acc, key, index) => { - const slug = key.split(":")[1]; - acc[slug] = parseInt(viewsEntries[index] as string) || 0; - return acc; - }, {} as Record); + try { + const redis = getRedisClient(); + const projects = await redis.keys("projects:*:views"); + const viewsEntries = await redis.mget(...projects); - return NextResponse.json(viewsData); - } catch (error) { - console.error("Redis error:", error); - return NextResponse.json( - { error: "Failed to fetch views" }, - { status: 500 } - ); - } + const viewsData = projects.reduce((acc, key, index) => { + const slug = key.split(":")[1]; + acc[slug] = parseInt(viewsEntries[index] as string) || 0; + return acc; + }, {} as Record); + + return NextResponse.json(viewsData); + } catch (error) { + console.error("Redis error:", error); + return NextResponse.json( + { error: "Failed to fetch views" }, + { status: 500 } + ); + } } \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 9c95914..fd24908 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,12 +6,12 @@ services: - redis_data:/data environment: - REDIS_PASSWORD=${REDIS_PASSWORD} - command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"] + command: [ "redis-server", "--requirepass", "${REDIS_PASSWORD}" ] networks: - backend - + healthcheck: - test: ["CMD", "redis-cli", "ping"] + test: [ "CMD", "redis-cli", "ping" ] interval: 5s timeout: 3s retries: 3 @@ -27,20 +27,21 @@ services: - "traefik.http.routers.next.tls=true" - "traefik.http.services.next.loadbalancer.server.port=3000" environment: - - REDIS_HOST=redis - - REDIS_PORT=6379 + - REDIS_HOST=${REDIS_HOST} + - REDIS_PORT=${REDIS_PORT} - REDIS_PASSWORD=${REDIS_PASSWORD} depends_on: - redis networks: - - proxy - - backend + - proxy + - backend volumes: redis_data: + networks: proxy: external: true backend: - internal: true \ No newline at end of file + internal: true