Skip to content

Commit dfa2c86

Browse files
committed
add back dg_auth (still unused)
1 parent 244c7e7 commit dfa2c86

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

next/app/api/dg_auth/route.ts

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { DeepgramError, createClient } from "@deepgram/sdk";
2+
import { NextResponse, type NextRequest } from "next/server";
3+
4+
export const revalidate = 0;
5+
6+
export async function GET(request: NextRequest) {
7+
const url = request.url;
8+
const deepgram = createClient(process.env.DEEPGRAM_API_KEY ?? "");
9+
10+
let { result: projectsResult, error: projectsError } =
11+
await deepgram.manage.getProjects();
12+
13+
if (projectsError) {
14+
return NextResponse.json(projectsError);
15+
}
16+
// assume we only have one project
17+
const project = projectsResult?.projects[0];
18+
if (!project) {
19+
return NextResponse.json(
20+
new DeepgramError(
21+
"Cannot find a Deepgram project. Please create a project first."
22+
)
23+
);
24+
}
25+
let { result: newKeyResult, error: newKeyError } =
26+
await deepgram.manage.createProjectKey(project.project_id, {
27+
comment: "Temporary API key",
28+
scopes: ["usage:write"],
29+
tags: ["next.js"],
30+
time_to_live_in_seconds: 3600,
31+
});
32+
33+
if (newKeyError) {
34+
console.error("[DG Auth] Failed to create key:", newKeyError);
35+
return NextResponse.json(newKeyError);
36+
}
37+
38+
console.log("[DG Auth] Created new key successfully, expires in 1 hour");
39+
const response = NextResponse.json({ ...newKeyResult, url });
40+
response.headers.set("Surrogate-Control", "no-store");
41+
response.headers.set(
42+
"Cache-Control",
43+
"s-maxage=0, no-store, no-cache, must-revalidate, proxy-revalidate"
44+
);
45+
response.headers.set("Expires", "0");
46+
return response;
47+
}

next/components/language-select.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export const LanguageSelect = ({
2424
}: LanguageSelectProps) => {
2525
return (
2626
<div className="flex items-center gap-2 w-full">
27-
<Label>{type === "input" ? "Me" : "Them"}</Label>
27+
<Label>{type === "input" ? "Me" : "You"}</Label>
2828
<Select value={value} onValueChange={(val) => onChange(val as Language)}>
2929
<SelectTrigger className="w-full text-lg">
3030
<SelectValue placeholder={`Select ${type} language`} />

0 commit comments

Comments
 (0)