Skip to content
This repository was archived by the owner on Feb 13, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/api-docs/openAPIDocumentGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import { healthCheckRegistry } from '@/routes/healthCheck/healthCheckRouter';
import { powerpointGeneratorRegistry } from '@/routes/powerpointGenerator/powerpointGeneratorRouter';
import { articleReaderRegistry } from '@/routes/webPageReader/webPageReaderRouter';
import { wordGeneratorRegistry } from '@/routes/wordGenerator/wordGeneratorRouter';
import { transcriptRegistry } from '@/routes/youtubeTranscript/transcriptRouter';
import { youtubeTranscriptRegistry } from '@/routes/youtubeTranscript/youtubeTranscriptRouter';

export function generateOpenAPIDocument() {
const registry = new OpenAPIRegistry([
healthCheckRegistry,
transcriptRegistry,
youtubeTranscriptRegistry,
articleReaderRegistry,
powerpointGeneratorRegistry,
wordGeneratorRegistry,
Expand Down
4 changes: 2 additions & 2 deletions src/routes/webPageReader/webPageReaderRouter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,12 @@ export const webPageReaderRouter: Router = (() => {
path: '/web-page-reader/get-content',
tags: ['Web Page Reader'],
request: {
params: WebPageReaderRequestParamSchema,
query: WebPageReaderRequestParamSchema,
},
responses: createApiResponse(WebPageReaderResponseSchema, 'Success'),
});

router.get('/', async (_req: Request, res: Response) => {
router.get('/get-content', async (_req: Request, res: Response) => {
const { url } = _req.query;

if (typeof url !== 'string') {
Expand Down
9 changes: 0 additions & 9 deletions src/routes/youtubeTranscript/transcriptModel.ts

This file was deleted.

14 changes: 14 additions & 0 deletions src/routes/youtubeTranscript/youtubeTranscriptModel.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi';
import { z } from 'zod';

extendZodWithOpenApi(z);

export type YoutubeTranscriptResponse = z.infer<typeof YoutubeTranscriptResponseSchema>;
export const YoutubeTranscriptResponseSchema = z.object({
textOnly: z.string(),
});

export type YoutubeTranscriptRequestParam = z.infer<typeof YoutubeTranscriptRequestParamSchema>;
export const YoutubeTranscriptRequestParamSchema = z.object({
videoId: z.string().describe('The id of the Youtube video to retrieve the transcript'),
});
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,25 @@ import { createApiResponse } from '@/api-docs/openAPIResponseBuilders';
import { ResponseStatus, ServiceResponse } from '@/common/models/serviceResponse';
import { handleServiceResponse } from '@/common/utils/httpHandlers';

import { TranscriptSchema } from './transcriptModel';
import { YoutubeTranscriptRequestParamSchema, YoutubeTranscriptResponseSchema } from './youtubeTranscriptModel';

export const transcriptRegistry = new OpenAPIRegistry();
transcriptRegistry.register('Transcript', TranscriptSchema);
export const youtubeTranscriptRegistry = new OpenAPIRegistry();
youtubeTranscriptRegistry.register('YoutubeTranscript', YoutubeTranscriptResponseSchema);

export const transcriptRouter: Router = (() => {
export const youtubeTranscriptRouter: Router = (() => {
const router = express.Router();

transcriptRegistry.registerPath({
youtubeTranscriptRegistry.registerPath({
method: 'get',
path: '/transcript',
path: '/youtube-transcript/get-transcript',
tags: ['Youtube Transcript'],
responses: createApiResponse(TranscriptSchema, 'Success'),
request: {
query: YoutubeTranscriptRequestParamSchema,
},
responses: createApiResponse(YoutubeTranscriptResponseSchema, 'Success'),
});

router.get('/', async (_req: Request, res: Response) => {
router.get('/get-transcript', async (_req: Request, res: Response) => {
const { videoId } = _req.query;

if (!videoId) {
Expand Down
4 changes: 2 additions & 2 deletions src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { healthCheckRouter } from '@/routes/healthCheck/healthCheckRouter';
import { powerpointGeneratorRouter } from './routes/powerpointGenerator/powerpointGeneratorRouter';
import { webPageReaderRouter } from './routes/webPageReader/webPageReaderRouter';
import { wordGeneratorRouter } from './routes/wordGenerator/wordGeneratorRouter';
import { transcriptRouter } from './routes/youtubeTranscript/transcriptRouter';
import { youtubeTranscriptRouter } from './routes/youtubeTranscript/youtubeTranscriptRouter';
const logger = pino({ name: 'server start' });
const app: Express = express();

Expand All @@ -36,7 +36,7 @@ app.use(requestLogger());
// Routes
app.use('/health-check', healthCheckRouter);
app.use('/images', express.static('public/images'));
app.use('/transcript', transcriptRouter);
app.use('/youtube-transcript', youtubeTranscriptRouter);
app.use('/web-page-reader', webPageReaderRouter);
app.use('/powerpoint-generator', powerpointGeneratorRouter);
app.use('/word-generator', wordGeneratorRouter);
Expand Down