nextav/src/app/api/processes/route.ts

45 lines
1.3 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server';
import { processManager } from '@/lib/process-manager';
export async function GET(request: NextRequest) {
try {
const processes = processManager.getAllProcesses();
const count = processManager.getProcessCount();
return NextResponse.json({
count,
processes,
timestamp: new Date().toISOString()
});
} catch (error) {
console.error('Process status API error:', error);
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
}
export async function DELETE(request: NextRequest) {
try {
const searchParams = request.nextUrl.searchParams;
const videoId = searchParams.get('videoId');
if (videoId) {
// Cleanup processes for specific video
processManager.removeByVideoId(videoId);
return NextResponse.json({
success: true,
message: `Cleaned up processes for video ${videoId}`
});
} else {
// Cleanup all processes
processManager.cleanupAll();
return NextResponse.json({
success: true,
message: 'Cleaned up all processes'
});
}
} catch (error) {
console.error('Process cleanup API error:', error);
return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
}
}