* MED-88: add doctor email notifications * add logging, send open jobs notification on partial analysis response * update permissions * fix import, permissions * casing, let email be null * unused import
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
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 (e) {
|
|
return NextResponse.json({}, { status: 401, statusText: 'Unauthorized' });
|
|
}
|
|
|
|
try {
|
|
await sendOpenJobsEmails();
|
|
console.info(
|
|
'Successfully sent out open job notification emails to doctors.',
|
|
);
|
|
await createNotificationLog({
|
|
action: NotificationAction.NEW_JOBS_ALERT,
|
|
status: 'SUCCESS',
|
|
});
|
|
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.NEW_JOBS_ALERT,
|
|
status: 'FAIL',
|
|
comment: e?.message,
|
|
});
|
|
return NextResponse.json(
|
|
{
|
|
message: 'Failed to send out open job notification emails to doctors.',
|
|
},
|
|
{ status: 500 },
|
|
);
|
|
}
|
|
};
|