diff options
| author | MohamedBassem <me@mbassem.com> | 2024-02-09 15:32:04 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-02-09 15:32:04 +0000 |
| commit | 4fae8f04f546d2b3f6053870d93385fa36af4742 (patch) | |
| tree | fbf91f3c3c3d2bd85e9e4cfc8200d275a78fb700 /packages/web/lib | |
| parent | b25f17509e704eb41523bf455a33804cabf8aaca (diff) | |
| download | karakeep-4fae8f04f546d2b3f6053870d93385fa36af4742.tar.zst | |
[ui] Adding the favourites and archive pages
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), }); |
