import { NextRequest, NextResponse } from 'next/server'; import { NotificationAction, createNotificationLog, } from '~/lib/services/audit/notificationEntries.service'; import loadEnv from '../handler/load-env'; import sendOpenJobsEmails from '../handler/send-open-jobs-emails'; import validateApiKey from '../handler/validate-api-key'; export const POST = async (request: NextRequest) => { loadEnv(); try { validateApiKey(request); } catch { return NextResponse.json({}, { status: 401, statusText: 'Unauthorized' }); } try { const doctors = await sendOpenJobsEmails(); console.info( 'Successfully sent out open job notification emails to doctors', ); await createNotificationLog({ action: NotificationAction.DOCTOR_NEW_JOBS, status: 'SUCCESS', comment: `doctors that received email: ${doctors}`, }); return NextResponse.json( { message: 'Successfully sent out open job notification emails to doctors.', }, { status: 200 }, ); } catch (e: any) { console.error( 'Error sending out open job notification emails to doctors.', e, ); await createNotificationLog({ action: NotificationAction.DOCTOR_NEW_JOBS, status: 'FAIL', comment: e?.message, }); return NextResponse.json( { message: 'Failed to send out open job notification emails to doctors.', }, { status: 500 }, ); } };