From 5bf38c66b081ba6ca03782a961179929d233c8eb Mon Sep 17 00:00:00 2001 From: Xeu Date: Sun, 11 Aug 2024 18:27:38 +0800 Subject: [PATCH 1/3] fix: lock elysia-oauth2 version --- bun.lockb | Bin 522828 -> 522828 bytes server/package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 30b59c4fc0b860bdf60215c3dd31cfa298d5fc47..c4cba2d145be17aa2d3831e6d867cba570d12087 100755 GIT binary patch delta 179 zcmV;k08IbP^dHRhACN8}k9QU|V$h9zi8Qb%o-SE}Y-KsS$sxdf5f#%>~7h#9>-~xyB-~+ey-~_SX23|2PGA=N; htiT1w1p_fIFo$-=1-Ev_29 Date: Sat, 28 Sep 2024 00:34:48 +0800 Subject: [PATCH 2/3] fix: #262 (#263) --- server/src/services/tag.ts | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/server/src/services/tag.ts b/server/src/services/tag.ts index 2b8d99ef..9989f96f 100644 --- a/server/src/services/tag.ts +++ b/server/src/services/tag.ts @@ -1,12 +1,14 @@ -import { eq } from "drizzle-orm"; +import { and, eq } from "drizzle-orm"; import Elysia from "elysia"; import type { DB } from "../_worker"; import { feedHashtags, hashtags } from "../db/schema"; import { getDB } from "../utils/di"; +import { setup } from "../setup"; export function TagService() { const db: DB = getDB(); return new Elysia({ aot: false }) + .use(setup()) .group('/tag', (group) => group .get('/', async () => { @@ -24,7 +26,7 @@ export function TagService() { } }) }) - .get('/:name', async ({ set, params: { name } }) => { + .get('/:name', async ({ admin, set, params: { name } }) => { const nameDecoded = decodeURI(name) const tag = await db.query.hashtags.findFirst({ where: eq(hashtags.name, nameDecoded), @@ -32,7 +34,11 @@ export function TagService() { feeds: { with: { feed: { - columns: { id: true, title: true, summary: true, content: true, createdAt: true, updatedAt: true }, + columns: { + id: true, title: true, summary: true, content: true, createdAt: true, updatedAt: true, + draft: false, + listed: false + }, with: { user: { columns: { id: true, username: true, avatar: true } @@ -45,18 +51,22 @@ export function TagService() { } } } - } - } + }, + where: (feeds: any) => admin ? undefined : and(eq(feeds.draft, 0), eq(feeds.listed, 1)), + } as any } } } }); - const tagFeeds = tag?.feeds.map((tag) => { + const tagFeeds = tag?.feeds.map((tag: any) => { + if (!tag.feed) { + return null; + } return { ...tag.feed, - hashtags: tag.feed.hashtags.map((tag) => tag.hashtag) + hashtags: tag.feed.hashtags.map((tag: any) => tag.hashtag) } - }) + }).filter((feed: any) => feed !== null); if (!tag) { set.status = 404; return 'Not found'; From 0110656fa5b33178efda95d8318ba9299679b8b0 Mon Sep 17 00:00:00 2001 From: "Pang.HB" <919401148@qq.com> Date: Mon, 7 Oct 2024 23:17:10 +0800 Subject: [PATCH 3/3] fix: search permission (#268) --- server/src/services/feed.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server/src/services/feed.ts b/server/src/services/feed.ts index 9cb535d8..846f8027 100644 --- a/server/src/services/feed.ts +++ b/server/src/services/feed.ts @@ -324,11 +324,12 @@ export function FeedService() { } const cacheKey = `search_${keyword}`; const searchKeyword = `%${keyword}%`; - const feed_list = (await cache.getOrSet(cacheKey, () => db.query.feeds.findMany({ - where: or(like(feeds.title, searchKeyword), + const where = or(like(feeds.title, searchKeyword), like(feeds.content, searchKeyword), like(feeds.summary, searchKeyword), - like(feeds.alias, searchKeyword)), + like(feeds.alias, searchKeyword)); + const feed_list = (await cache.getOrSet(cacheKey, () => db.query.feeds.findMany({ + where: admin ? where : and(where, eq(feeds.draft, 0)), columns: admin ? undefined : { draft: false, listed: false @@ -484,4 +485,4 @@ async function clearFeedCache(id: number, alias: string | null, newAlias: string await cache.delete(`feed_${alias}`, false); if (newAlias) await cache.delete(`feed_${newAlias}`, false); -} \ No newline at end of file +}