youtuber-blog/src/routes/videos.js

34 lines
950 B
JavaScript

/** @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();
};