returning queue on blog endpoint

This commit is contained in:
Omer Sabic 2024-06-19 20:03:51 +02:00
parent 3bf83041ff
commit fca37022d7
2 changed files with 17 additions and 4 deletions

View File

@ -1,4 +1,4 @@
import { and, desc, eq, or, sql } from "drizzle-orm"; import { and, desc, eq, not, or, sql } from "drizzle-orm";
import { db } from "../db/index.js"; import { db } from "../db/index.js";
import { authMiddlewareFn } from "../modules/middleware.js"; import { authMiddlewareFn } from "../modules/middleware.js";
import { articles, articles as articlesTable, signups as signupsTable, sites, users } from "../db/schemas.js"; import { articles, articles as articlesTable, signups as signupsTable, sites, users } from "../db/schemas.js";
@ -64,7 +64,7 @@ export const blogRoutes = (fastify, _, done) => {
} }
clause = eq(articlesTable.site_id, site.id); clause = eq(articlesTable.site_id, site.id);
if (mine == false) { if (!mine) {
clause = and(eq(articlesTable.site_id, site.id), eq(articlesTable.is_public, true)); clause = and(eq(articlesTable.site_id, site.id), eq(articlesTable.is_public, true));
} }
// const access_token = await getAccessToken(fastify, request); // const access_token = await getAccessToken(fastify, request);
@ -77,17 +77,31 @@ export const blogRoutes = (fastify, _, done) => {
views: articlesTable.views, views: articlesTable.views,
is_public: articlesTable.is_public, is_public: articlesTable.is_public,
created_at: articlesTable.created_at, created_at: articlesTable.created_at,
}).from(articlesTable).where(clause).limit(10).offset(request.query.offset || 0).orderBy(desc(articlesTable.created_at)); }).from(articlesTable).where(and(eq(articlesTable.status, "done"), clause)).limit(10).offset(request.query.offset || 0).orderBy(desc(articlesTable.created_at));
const [{ total }] = await db.select({ const [{ total }] = await db.select({
total: sql`COUNT(*)` total: sql`COUNT(*)`
}).from(articlesTable).where(clause); }).from(articlesTable).where(clause);
let queue = [];
if (mine) {
queue = await db.select({
id: articlesTable.id,
title: articlesTable.title,
seo_slug: articlesTable.seo_slug,
views: articlesTable.views,
is_public: articlesTable.is_public,
created_at: articlesTable.created_at,
status: articlesTable.status
}).where(and(eq(articlesTable.site_id, site.id), not(articlesTable.status, "done")));
}
response.send({ response.send({
success: true, success: true,
articles: results, articles: results,
total_articles: total, total_articles: total,
site, site,
queue
}); });
} catch (e) { } catch (e) {
console.log(e); console.log(e);

View File

@ -6,7 +6,6 @@ import ytdl from 'ytdl-core';
import { getWhisperCaptions } from './ai.js'; import { getWhisperCaptions } from './ai.js';
const service = google.youtube("v3"); const service = google.youtube("v3");
export async function getVideoById(access_token, video_id) { export async function getVideoById(access_token, video_id) {
const video = await service.videos.list({ const video = await service.videos.list({
access_token, access_token,