35 lines
867 B
TypeScript
35 lines
867 B
TypeScript
import { NextRequest, NextResponse } from 'next/server';
|
|
|
|
import loadEnv from '../handler/load-env';
|
|
import syncAnalysisGroups from '../handler/sync-analysis-groups';
|
|
import validateApiKey from '../handler/validate-api-key';
|
|
|
|
export const POST = async (request: NextRequest) => {
|
|
loadEnv();
|
|
|
|
try {
|
|
validateApiKey(request);
|
|
} catch (e) {
|
|
return NextResponse.json({}, { status: 401, statusText: 'Unauthorized' });
|
|
}
|
|
|
|
try {
|
|
await syncAnalysisGroups();
|
|
console.info('Successfully synced analysis groups');
|
|
return NextResponse.json(
|
|
{
|
|
message: 'Successfully synced analysis groups',
|
|
},
|
|
{ status: 200 },
|
|
);
|
|
} catch (e) {
|
|
console.error('Error syncing analysis groups', e);
|
|
return NextResponse.json(
|
|
{
|
|
message: 'Failed to sync analysis groups',
|
|
},
|
|
{ status: 500 },
|
|
);
|
|
}
|
|
};
|