This commit is contained in:
Timothy Jaeryang Baek
2026-05-09 04:39:44 +09:00
parent 005df577fe
commit 33e588cf09
3 changed files with 150 additions and 9 deletions
+18 -3
View File
@@ -92,10 +92,13 @@ async def get_notes(
user_ids = list(set(note.user_id for note in notes))
users = {user.id: user for user in await Users.get_users_by_user_ids(user_ids, db=db)}
pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db)
return [
NoteUserResponse(
**{
**note.model_dump(),
'is_pinned': note.id in pinned_note_ids,
'data': _truncate_note_data(note.data),
'user': UserResponse(**users[note.user_id].model_dump()),
}
@@ -135,6 +138,7 @@ async def get_pinned_notes(
NoteUserResponse(
**{
**note.model_dump(),
'is_pinned': True,
'data': _truncate_note_data(note.data),
'user': UserResponse(**users[note.user_id].model_dump()),
}
@@ -190,7 +194,9 @@ async def search_notes(
filter['user_id'] = user.id
result = await Notes.search_notes(user.id, filter, skip=skip, limit=limit, db=db)
pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db)
for note in result.items:
note.is_pinned = note.id in pinned_note_ids
note.data = _truncate_note_data(note.data)
return result
@@ -287,7 +293,8 @@ async def get_note_by_id(
or has_public_write_access_grant(note.access_grants)
)
return NoteResponse(**note.model_dump(), write_access=write_access)
pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db)
return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)
############################
@@ -338,6 +345,9 @@ async def update_note_by_id(
try:
note = await Notes.update_note_by_id(id, form_data, db=db)
pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db)
note.is_pinned = note.id in pinned_note_ids
await sio.emit(
'note-events',
note.model_dump(),
@@ -401,7 +411,10 @@ async def update_note_access_by_id(
await AccessGrants.set_access_grants('note', id, form_data.access_grants, db=db)
return await Notes.get_note_by_id(id, db=db)
note = await Notes.get_note_by_id(id, db=db)
pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db)
note.is_pinned = note.id in pinned_note_ids
return note
############################
@@ -440,7 +453,9 @@ async def pin_note_by_id(
):
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT())
note = await Notes.toggle_note_pinned_by_id(id, db=db)
note = await Notes.toggle_note_pinned_by_id(id, user.id, db=db)
pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db)
note.is_pinned = note.id in pinned_note_ids
return note