diff --git a/src/server/api/routers/video.ts b/src/server/api/routers/video.ts index 60dab68..728e862 100644 --- a/src/server/api/routers/video.ts +++ b/src/server/api/routers/video.ts @@ -1,7 +1,7 @@ import { z } from "zod"; import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc"; -import { PutObjectCommand } from "@aws-sdk/client-s3"; +import { GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; import { env } from "~/env.mjs"; import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; import { TRPCError } from "@trpc/server"; @@ -19,6 +19,7 @@ export const videoRouter = createTRPCRouter({ get: protectedProcedure .input(z.object({ videoId: z.string() })) .query(async ({ ctx, input }) => { + const { s3 } = ctx; const video = await ctx.prisma.video.findUnique({ where: { id: input.videoId, @@ -29,6 +30,15 @@ export const videoRouter = createTRPCRouter({ throw new TRPCError({ code: "UNAUTHORIZED" }); } + const getObjectCommand = new GetObjectCommand({ + Bucket: env.AWS_BUCKET_NAME, + Key: ctx.session.user.id + "/" + video.id, + }); + + const signedUrl = await getSignedUrl(s3, getObjectCommand); + + video.video_url = signedUrl; + return video; }), getUploadUrl: protectedProcedure