aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/app/dashboard
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-02-23 19:27:31 +0000
committerMohamedBassem <me@mbassem.com>2024-02-23 20:47:54 +0000
commite234d3535c363664902dffe89a2c61ddbc037da4 (patch)
tree5430570d98bc376ce92c8ecc5d2503ecced1d79b /packages/web/app/dashboard
parentbed57209b09a4bd59dbaf010d58045fe77896ba8 (diff)
downloadkarakeep-e234d3535c363664902dffe89a2c61ddbc037da4.tar.zst
db: Migrate from prisma to drizzle
Diffstat (limited to 'packages/web/app/dashboard')
-rw-r--r--packages/web/app/dashboard/tags/[tagName]/page.tsx26
-rw-r--r--packages/web/app/dashboard/tags/page.tsx32
2 files changed, 27 insertions, 31 deletions
diff --git a/packages/web/app/dashboard/tags/[tagName]/page.tsx b/packages/web/app/dashboard/tags/[tagName]/page.tsx
index 729a5cbc..493cb358 100644
--- a/packages/web/app/dashboard/tags/[tagName]/page.tsx
+++ b/packages/web/app/dashboard/tags/[tagName]/page.tsx
@@ -1,8 +1,10 @@
import { getServerAuthSession } from "@/server/auth";
-import { prisma } from "@hoarder/db";
+import { db } from "@hoarder/db";
import { notFound, redirect } from "next/navigation";
import BookmarksGrid from "../../bookmarks/components/BookmarksGrid";
import { api } from "@/server/api/client";
+import { bookmarkTags, tagsOnBookmarks } from "@hoarder/db/schema";
+import { and, eq } from "drizzle-orm";
export default async function TagPage({
params,
@@ -13,14 +15,12 @@ export default async function TagPage({
if (!session) {
redirect("/");
}
- const tag = await prisma.bookmarkTags.findUnique({
- where: {
- userId_name: {
- userId: session.user.id,
- name: params.tagName,
- },
- },
- select: {
+ const tag = await db.query.bookmarkTags.findFirst({
+ where: and(
+ eq(bookmarkTags.userId, session.user.id),
+ eq(bookmarkTags.name, params.tagName),
+ ),
+ columns: {
id: true,
},
});
@@ -30,11 +30,9 @@ export default async function TagPage({
notFound();
}
- const bookmarkIds = await prisma.tagsOnBookmarks.findMany({
- where: {
- tagId: tag.id,
- },
- select: {
+ const bookmarkIds = await db.query.tagsOnBookmarks.findMany({
+ where: eq(tagsOnBookmarks.tagId, tag.id),
+ columns: {
bookmarkId: true,
},
});
diff --git a/packages/web/app/dashboard/tags/page.tsx b/packages/web/app/dashboard/tags/page.tsx
index d76a7f91..4b12fe35 100644
--- a/packages/web/app/dashboard/tags/page.tsx
+++ b/packages/web/app/dashboard/tags/page.tsx
@@ -1,5 +1,7 @@
import { getServerAuthSession } from "@/server/auth";
-import { prisma } from "@hoarder/db";
+import { db } from "@hoarder/db";
+import { bookmarkTags, tagsOnBookmarks } from "@hoarder/db/schema";
+import { count, eq } from "drizzle-orm";
import Link from "next/link";
import { redirect } from "next/navigation";
@@ -23,28 +25,24 @@ export default async function TagsPage() {
redirect("/");
}
- let tags = await prisma.bookmarkTags.findMany({
- where: {
- userId: session.user.id,
- },
- include: {
- _count: {
- select: {
- bookmarks: true,
- },
- },
- },
- });
+ let tags = await db
+ .select({
+ id: tagsOnBookmarks.tagId,
+ name: bookmarkTags.name,
+ count: count(),
+ })
+ .from(tagsOnBookmarks)
+ .where(eq(bookmarkTags.userId, session.user.id))
+ .groupBy(tagsOnBookmarks.tagId)
+ .innerJoin(bookmarkTags, eq(bookmarkTags.id, tagsOnBookmarks.tagId));
// Sort tags by usage desc
- tags = tags
- .filter((t) => t._count.bookmarks > 0)
- .sort((a, b) => b._count.bookmarks - a._count.bookmarks);
+ tags = tags.sort((a, b) => b.count - a.count);
let tagPill;
if (tags.length) {
tagPill = tags.map((t) => (
- <TagPill key={t.id} name={t.name} count={t._count.bookmarks} />
+ <TagPill key={t.id} name={t.name} count={t.count} />
));
} else {
tagPill = "No Tags";