MCPcopy Create free account
hub / github.com/Y80/bmm / fullSetBookmarkToTag

Function fullSetBookmarkToTag

src/controllers/UserBookmark.controller.ts:28–43  ·  view source on GitHub ↗

* 完全更新 PublicBookmarkToTag 表,使与 bId 关联关联的 tId 全是 tagIds 中的 id

(bId: BookmarkId, tagIds?: TagId[])

Source from the content-addressed store, hash-verified

26 * 完全更新 PublicBookmarkToTag 表,使与 bId 关联关联的 tId 全是 tagIds 中的 id
27 */
28async function fullSetBookmarkToTag(bId: BookmarkId, tagIds?: TagId[]) {
29 if (!tagIds?.length) return
30 const userId = await getAuthedUserId()
31 tagIds = await UserTagController.filterUserTagIds(userId, tagIds)
32 const task = [
33 tagIds.length &&
34 db
35 .insert(userBookmarkToTag)
36 .values(tagIds.map((tId) => ({ bId: bId, tId })))
37 .onConflictDoNothing(),
38 db
39 .delete(userBookmarkToTag)
40 .where(and(eq(userBookmarkToTag.bId, bId), notInArray(userBookmarkToTag.tId, tagIds))),
41 ]
42 await Promise.all(task)
43}
44
45function userLimiter(userId: UserId, bookmarkId?: BookmarkId) {
46 if (!bookmarkId) return eq(userBookmarks.userId, userId)

Callers 3

insertFunction · 0.70
updateFunction · 0.70

Calls 1

getAuthedUserIdFunction · 0.90

Tested by

no test coverage detected