Skip to content

Commit ec9a548

Browse files
wesboscursoragent
andauthored
Add transcript API endpoint and link from shows API (#2158)
- Create GET /api/transcripts/[number] endpoint that returns: - show_title - show_number - utterances (speaker, speaker_name, transcript, start, end) - Add transcript property to shows API endpoints linking to transcript API Co-authored-by: Cursor Agent <cursoragent@cursor.com>
1 parent 44dea0c commit ec9a548

4 files changed

Lines changed: 60 additions & 3 deletions

File tree

src/routes/api/shows/+server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ export async function GET() {
1111
...show,
1212
notesFile: show?.md_file,
1313
displayNumber: show?.number.toString(),
14-
displayDate: format(new Date(show.date), 'MMMM do, yyyy')
14+
displayDate: format(new Date(show.date), 'MMMM do, yyyy'),
15+
transcript: `/api/transcripts/${show.number}`
1516
};
1617
});
1718

src/routes/api/shows/[number=show_number]/+server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ export async function GET({ params }) {
2828
...data,
2929
notesFile: data?.md_file,
3030
displayNumber: data?.number.toString(),
31-
displayDate: format(new Date(data.date), 'MMMM do, yyyy')
31+
displayDate: format(new Date(data.date), 'MMMM do, yyyy'),
32+
transcript: `/api/transcripts/${data.number}`
3233
},
3334
{
3435
headers: {

src/routes/api/shows/latest/+server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ export async function GET() {
1111
...data,
1212
notesFile: data?.md_file,
1313
displayNumber: data?.number.toString(),
14-
displayDate: format(new Date(data.date), 'MMMM do, yyyy')
14+
displayDate: format(new Date(data.date), 'MMMM do, yyyy'),
15+
transcript: `/api/transcripts/${data.number}`
1516
},
1617
{
1718
headers: {
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import { error, json } from '@sveltejs/kit';
2+
import { prisma_client } from '$/server/prisma-client';
3+
4+
export async function GET({ params }) {
5+
const show_number = parseInt(params.number);
6+
7+
const transcript = await prisma_client.transcript.findUnique({
8+
where: { show_number },
9+
include: {
10+
show: {
11+
select: {
12+
title: true,
13+
number: true,
14+
date: true
15+
}
16+
},
17+
utterances: {
18+
select: {
19+
speaker: true,
20+
speakerName: true,
21+
transcript_value: true,
22+
start: true,
23+
end: true
24+
},
25+
orderBy: {
26+
start: 'asc'
27+
}
28+
}
29+
}
30+
});
31+
32+
if (!transcript || !transcript.show) {
33+
error(404, 'Transcript not found');
34+
}
35+
36+
return json(
37+
{
38+
show_title: transcript.show.title,
39+
show_number: transcript.show.number,
40+
utterances: transcript.utterances.map((utterance) => ({
41+
speaker: utterance.speaker,
42+
speaker_name: utterance.speakerName,
43+
transcript: utterance.transcript_value,
44+
start: utterance.start,
45+
end: utterance.end
46+
}))
47+
},
48+
{
49+
headers: {
50+
'Access-Control-Allow-Origin': '*'
51+
}
52+
}
53+
);
54+
}

0 commit comments

Comments
 (0)