aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/lib
diff options
context:
space:
mode:
Diffstat (limited to 'packages/web/lib')
-rw-r--r--packages/web/lib/services/bookmarks.ts13
-rw-r--r--packages/web/lib/types/api/bookmarks.ts7
2 files changed, 18 insertions, 2 deletions
diff --git a/packages/web/lib/services/bookmarks.ts b/packages/web/lib/services/bookmarks.ts
index 3c9929bc..3231e4d3 100644
--- a/packages/web/lib/services/bookmarks.ts
+++ b/packages/web/lib/services/bookmarks.ts
@@ -1,6 +1,10 @@
import { LinkCrawlerQueue } from "@remember/shared/queues";
import prisma from "@remember/db";
-import { ZBookmark, ZBookmarkContent } from "@/lib/types/api/bookmarks";
+import {
+ ZBookmark,
+ ZBookmarkContent,
+ ZGetBookmarksRequest,
+} from "@/lib/types/api/bookmarks";
const defaultBookmarkFields = {
id: true,
@@ -80,11 +84,16 @@ export async function bookmarkLink(url: string, userId: string) {
return toZodSchema(bookmark);
}
-export async function getBookmarks(userId: string) {
+export async function getBookmarks(
+ userId: string,
+ { favourited, archived }: ZGetBookmarksRequest,
+) {
return (
await prisma.bookmark.findMany({
where: {
userId,
+ archived,
+ favourited,
},
select: defaultBookmarkFields,
})
diff --git a/packages/web/lib/types/api/bookmarks.ts b/packages/web/lib/types/api/bookmarks.ts
index 485fbfab..c4aec646 100644
--- a/packages/web/lib/types/api/bookmarks.ts
+++ b/packages/web/lib/types/api/bookmarks.ts
@@ -31,6 +31,13 @@ export const zNewBookmarkRequestSchema = zBookmarkContentSchema;
export type ZNewBookmarkRequest = z.infer<typeof zNewBookmarkRequestSchema>;
// GET /v1/bookmarks
+
+export const zGetBookmarksRequestSchema = z.object({
+ archived: z.boolean().default(false),
+ favourited: z.boolean().default(false),
+});
+export type ZGetBookmarksRequest = z.infer<typeof zGetBookmarksRequestSchema>;
+
export const zGetBookmarksResponseSchema = z.object({
bookmarks: z.array(zBookmarkSchema),
});