import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/lib/prisma' import { requireAuth, revokeSession } from '@/lib/auth' export async function DELETE( request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { try { const user = await requireAuth() const { id: sessionId } = await params // First check if the session belongs to the current user const session = await prisma.session.findUnique({ where: { id: sessionId }, select: { userId: true, token: true }, }) if (!session) { return NextResponse.json( { error: 'Session not found' }, { status: 404 } ) } if (session.userId !== user.id) { return NextResponse.json( { error: 'Forbidden' }, { status: 403 } ) } // Revoke the session await revokeSession(session.token) return NextResponse.json( { message: 'Session revoked successfully' }, { status: 200 } ) } catch (error) { console.error('Revoke session error:', error) if (error instanceof Error && error.message === 'Unauthorized') { return NextResponse.json( { error: 'Unauthorized' }, { status: 401 } ) } return NextResponse.json( { error: 'Failed to revoke session' }, { status: 500 } ) } }