diff options
Diffstat (limited to 'packages/web/lib')
| -rw-r--r-- | packages/web/lib/services/bookmarks.ts | 13 | ||||
| -rw-r--r-- | packages/web/lib/types/api/bookmarks.ts | 7 |
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), }); |
