Overview
Last updated
import { waitUntil } from '@vercel/functions'
import { NextResponse } from 'next/server'
import addUserToTeam from '@/lib/addUserToTeam'
import getHypertune from '@/lib/getHypertune'
import getTeamSize from '@/lib/getTeamSize'
export const runtime = 'edge'
export async function POST(request: Request) {
const hypertune = await getHypertune({ isRouteHandler: true })
const { userId, teamId } = await request.json()
const teamSize = getTeamSize()
const maxTeamSize = hypertune.entitlements().maxTeamSize({
args: {},
fallback: 5,
})
waitUntil(hypertune.flushLogs())
if (teamSize >= maxTeamSize) {
return NextResponse.json(
{
error: 'Team size limit reached',
teamSize,
maxTeamSize,
message: `Your team has reached the maximum size of ${maxTeamSize} members. Please upgrade your plan to add more members.`,
},
{ status: 403 }
)
}
const result = await addUserToTeam(userId, teamId)
return NextResponse.json({
success: true,
currentTeamSize: teamSize + 1,
maxTeamSize,
result,
})
}