|
- import { constants } from 'http2';
- import { SummaryService, SummaryServiceImpl } from './SummaryService';
- import { Controller } from '../../packages/fastify-controller';
-
- export interface SummaryController extends Controller<'summarizeVideoTranscript'> {}
-
- export class SummaryControllerImpl implements SummaryController {
- constructor(
- private readonly summaryService: SummaryService = new SummaryServiceImpl(),
- ) {
- // noop
- }
-
- readonly summarizeVideoTranscript: SummaryController['summarizeVideoTranscript'] = async (request, reply) => {
- try {
- const stream = this.summaryService.createSummaryStream(request.body as string);
- reply.header('Content-Type', 'application/octet-stream');
- reply.raw.statusMessage = 'Summary Generated';
- return reply.send(stream);
- } catch (errRaw) {
- const err = errRaw as Error;
- request.server.log.error(err);
- reply.code(constants.HTTP_STATUS_INTERNAL_SERVER_ERROR)
- reply.raw.statusMessage = 'Summary Failed';
- reply.send();
- }
- };
- }
|