feat: add check quota on send email

This commit is contained in:
oiov
2025-04-23 23:15:12 +08:00
parent 600f2e90c7
commit f18883cdda
3 changed files with 16 additions and 1 deletions
+12
View File
@@ -4,6 +4,7 @@ import { getUserSendEmailCount, saveUserSendEmail } from "@/lib/dto/email";
import { checkUserStatus } from "@/lib/dto/user";
import { resend } from "@/lib/email";
import { getCurrentUser } from "@/lib/session";
import { Team_Plan_Quota } from "@/lib/team";
import { isValidEmail } from "@/lib/utils";
export async function POST(req: NextRequest) {
@@ -11,6 +12,17 @@ export async function POST(req: NextRequest) {
const user = checkUserStatus(await getCurrentUser());
if (user instanceof Response) return user;
// check quota
const count = await getUserSendEmailCount(user.id, false);
if (count >= Team_Plan_Quota[user.team].EM_SendEmails) {
return Response.json(
`Your email addresses have reached the ${user.team} limit.`,
{
status: 409,
},
);
}
const { from, to, subject, html } = await req.json();
if (!from || !to || !subject || !html) {
+3
View File
@@ -8,6 +8,7 @@ export const Team_Plan_Quota = {
RC_NewRecords: 0,
EM_EmailAddresses: 1000,
EM_Domains: 1,
EM_SendEmails: 100,
APP_Support: "basic",
APP_ApiAccess: true,
},
@@ -20,6 +21,7 @@ export const Team_Plan_Quota = {
RC_NewRecords: 3,
EM_EmailAddresses: 10000,
EM_Domains: 3,
EM_SendEmails: 1000,
APP_Support: "live",
APP_ApiAccess: true,
},
@@ -32,6 +34,7 @@ export const Team_Plan_Quota = {
RC_NewRecords: 3,
EM_EmailAddresses: 10000,
EM_Domains: 3,
EM_SendEmails: 1000,
APP_Support: "live",
APP_ApiAccess: true,
},
+1 -1
View File
File diff suppressed because one or more lines are too long