feat: add check quota on send email
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user