/** @typedef {import("fastify").FastifyInstance} FastifyInstance */ import { eq } from "drizzle-orm"; import { db } from "../db/index.js"; import { users } from "../db/schemas.js"; import { authMiddleware } from "../modules/middleware.js"; import { getAccessToken, getVideosFromPlaylist } from "../utils/youtube.js"; /** * * @param {FastifyInstance} fastify * @param {unknown} _ * @param {() => void} done */ export const videoRoutes = (fastify, _, done) => { fastify.register(authMiddleware); fastify.get("/", async (request, response) => { try { const token = await getAccessToken(fastify, request); const [user] = await db.select().from(users).where(eq(users.id, request.session.user_id)); const videos = await getVideosFromPlaylist(token, user.uploads_playlist_id); response.send({ success: true, videos }); } catch (e) { console.log(e); } }); done(); };