fix #2392: make subs return meSubscription (#2451)

* fix #2392: make subs return meSubscription

* convert queryRawUnsafe to queryRaw

* Fix syntax error in $queryRaw

---------

Co-authored-by: ekzyis <ek@stacker.news>
This commit is contained in:
Scroogey-SN 2025-08-30 00:51:48 +00:00 committed by GitHub
parent a95da3d108
commit 5ff6214255
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -54,14 +54,15 @@ export default {
const currentUser = await models.user.findUnique({ where: { id: me.id } }) const currentUser = await models.user.findUnique({ where: { id: me.id } })
const showNsfw = currentUser ? currentUser.nsfwMode : false const showNsfw = currentUser ? currentUser.nsfwMode : false
return await models.$queryRawUnsafe(` return await models.$queryRaw`
SELECT "Sub".*, "Sub".created_at as "createdAt", COALESCE(json_agg("MuteSub".*) FILTER (WHERE "MuteSub"."userId" IS NOT NULL), '[]') AS "MuteSub" SELECT "Sub".*, "Sub".created_at as "createdAt", ss."userId" IS NOT NULL as "meSubscription", COALESCE(json_agg("MuteSub".*) FILTER (WHERE "MuteSub"."userId" IS NOT NULL), '[]') AS "MuteSub"
FROM "Sub" FROM "Sub"
LEFT JOIN "SubSubscription" ss ON "Sub".name = ss."subName" AND ss."userId" = ${me.id}::INTEGER
LEFT JOIN "MuteSub" ON "Sub".name = "MuteSub"."subName" AND "MuteSub"."userId" = ${me.id}::INTEGER LEFT JOIN "MuteSub" ON "Sub".name = "MuteSub"."subName" AND "MuteSub"."userId" = ${me.id}::INTEGER
WHERE status <> 'STOPPED' ${showNsfw ? '' : 'AND "Sub"."nsfw" = FALSE'} WHERE status <> 'STOPPED' ${showNsfw ? Prisma.empty : Prisma.sql`AND "Sub"."nsfw" = FALSE`}
GROUP BY "Sub".name, "MuteSub"."userId" GROUP BY "Sub".name, ss."userId", "MuteSub"."userId"
ORDER BY "Sub".name ASC ORDER BY "Sub".name ASC
`) `
} }
return await models.sub.findMany({ return await models.sub.findMany({