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 },
    );
  }
};
