import { NextRequest, NextResponse } from 'next/server';

import loadEnv from '../handler/load-env';
import syncAnalysisGroupsStore from '../handler/sync-analysis-groups-store';
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 syncAnalysisGroupsStore();
    console.info('Successfully synced analysis groups store');
    return NextResponse.json(
      {
        message: 'Successfully synced analysis groups store',
      },
      { status: 200 },
    );
  } catch (e) {
    console.error('Error syncing analysis groups store', e);
    return NextResponse.json(
      {
        message: 'Failed to sync analysis groups store',
      },
      { status: 500 },
    );
  }
};
