3 comics per week

This commit is contained in:
Riccardo Giorato
2026-01-29 16:55:54 +01:00
parent 6ed91fffec
commit 7ad2e1b9b7
4 changed files with 12 additions and 37 deletions
+8 -33
View File
@@ -1,9 +1,6 @@
import { type NextRequest, NextResponse } from "next/server";
import { auth } from "@clerk/nextjs/server";
import { freeTierRateLimit } from "@/lib/rate-limit";
import { db } from "@/lib/db";
import { stories } from "@/lib/schema";
import { gte } from "drizzle-orm";
export async function POST(request: NextRequest) {
try {
@@ -27,36 +24,14 @@ export async function POST(request: NextRequest) {
});
}
// For free tier, check rate limit status
try {
// Try to check remaining without consuming
const limitResult = await freeTierRateLimit.getRemaining(userId);
// For free tier, check rate limit status via Redis
const limitResult = await freeTierRateLimit.getRemaining(userId);
return NextResponse.json({
hasApiKey: false,
creditsRemaining: limitResult.remaining,
resetTime: limitResult.reset,
});
} catch (error) {
console.error("Rate limit check error:", error);
// Fallback to database check
const sevenDaysAgo = new Date();
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);
const recentStories = await db
.select()
.from(stories)
.where(gte(stories.createdAt, sevenDaysAgo))
.limit(1);
const hasUsedCredit = recentStories.length > 0;
return NextResponse.json({
hasApiKey: false,
creditsRemaining: hasUsedCredit ? 0 : 1,
resetTime: hasUsedCredit ? sevenDaysAgo.getTime() + 7 * 24 * 60 * 60 * 1000 : null,
});
}
return NextResponse.json({
hasApiKey: false,
creditsRemaining: limitResult.remaining,
resetTime: limitResult.reset,
});
} catch (error) {
console.error("Error in check-credits API:", error);
return NextResponse.json(
@@ -68,4 +43,4 @@ export async function POST(request: NextRequest) {
{ status: 500 }
);
}
}
}
@@ -204,7 +204,7 @@ export function StoryEditorClient() {
setShowApiModal(true);
toast({
title: "No credits remaining",
description: "You get 1 credit weekly. Add an API key for unlimited generation.",
description: "You get 3 credits weekly. Add an API key for unlimited generation.",
variant: "destructive",
});
}