Skip to content

Commit d6f0b09

Browse files
committed
Add Server Action to Delete a File
1 parent b0d44ad commit d6f0b09

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/server/actions.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
"use server";
2+
3+
import { auth } from "@clerk/nextjs/server";
4+
import { and, eq } from "drizzle-orm";
5+
import { UTApi } from "uploadthing/server";
6+
7+
import { db } from "~/server/db";
8+
import { files_table as fileSchema } from "~/server/db/schema";
9+
10+
const utApi = new UTApi();
11+
12+
export async function deleteFile(fileId: number) {
13+
const session = await auth();
14+
if (!session.userId) return { error: "Unauthorized" };
15+
16+
const [file] = await db
17+
.select()
18+
.from(fileSchema)
19+
.where(
20+
and(eq(fileSchema.id, fileId), eq(fileSchema.ownerId, session.userId)),
21+
);
22+
23+
if (!file) return { error: "File not found" };
24+
25+
await utApi.deleteFiles([file.url.replace("https://utfs.io/f/", "")]); // TODO: add fileKey to db schema
26+
await db.delete(fileSchema).where(eq(fileSchema.id, fileId));
27+
28+
return { success: true };
29+
}

0 commit comments

Comments
 (0)