Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion app/api/v1/endpoints/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

from app.utils.get_db import get_db
from app.utils.auth import get_current_user
from app.curd.group import crud_create, crud_gen_invite_code, crud_enter_group, crud_modify_basic_info, crud_modify_admin_list, crud_remove_member, crud_leave_group, crud_get_basic_info, crud_get_people_info, crud_get_my_level, crud_all_groups, crud_new_folder, crud_new_article, crud_new_note, crud_article_tags, crud_file_tree, crud_permission_define, crud_apply_to_delete, crud_all_delete_applications, crud_reply_to_delete, crud_delete, crud_get_permissions, crud_logs, crud_disband, crud_change_folder_name, crud_change_article_name, crud_change_note, crud_read_note
from app.curd.group import crud_create, crud_gen_invite_code, crud_enter_group, crud_modify_basic_info, crud_modify_admin_list, crud_remove_member, crud_leave_group, crud_get_basic_info, crud_get_people_info, crud_get_my_level, crud_all_groups, crud_new_folder, crud_new_article, crud_new_note, crud_article_tags, crud_file_tree, crud_permission_define, crud_apply_to_delete, crud_all_delete_applications, crud_reply_to_delete, crud_delete, crud_get_permissions, crud_if_edit_note, crud_logs, crud_disband, crud_change_folder_name, crud_change_article_name, crud_change_note, crud_read_note
from app.schemas.group import EnterGroup, LeaveGroup

router = APIRouter()
Expand Down Expand Up @@ -218,6 +218,12 @@ async def get_permissions(group_id: int = Query(...), item_type: int = Query(...
unaccessible, read_only, writeable = await crud_get_permissions(group_id, item_type, item_id, db)
return {"unaccessible": unaccessible, "read_only": read_only, "writeable": writeable}

@router.get("/ifEditNote", response_model=dict)
async def if_edit_note(note_id: int = Query(...), db: AsyncSession = Depends(get_db), user: dict = Depends(get_current_user)):
user_id = user.get("id")
editable = await crud_if_edit_note(note_id, user_id, db)
return {"editable": editable}

@router.post("/changeFolderName", response_model=dict)
async def change_folder_name(folder_id: int = Body(...), folder_name: str = Body(...), db: AsyncSession = Depends(get_db), user: dict = Depends(get_current_user)):
if len(folder_name) > 30:
Expand Down
2 changes: 1 addition & 1 deletion app/api/v1/endpoints/note.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ async def get_notes(note_find: NoteFind = Depends(), db: AsyncSession = Depends(
"page": note_find.page,
"page_size": note_find.page_size
},
"notes": [note.model_dump() for note in notes]
"notes": notes
}

@router.get("/title", response_model=dict)
Expand Down
6 changes: 6 additions & 0 deletions app/curd/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -581,6 +581,12 @@ async def crud_get_permissions(group_id: int, item_type: int, item_id: int, db:

return unaccessible, read_only, writeable

async def crud_if_edit_note(note_id: int, user_id: int, db: AsyncSession):
query = select(operate_permissions).where(operate_permissions.c.user_id == user_id, operate_permissions.c.item_type == 3, operate_permissions.c.item_id == note_id)
result = await db.execute(query)
permission = result.first()
return False if permission else True

async def crud_change_folder_name(folder_id: int, folder_name: str, user_id: int, db: AsyncSession):
query = select(Folder).where(Folder.id == folder_id)
result = await db.execute(query)
Expand Down
2 changes: 1 addition & 1 deletion app/curd/note.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ async def find_notes_in_db(note_find: NoteFind, db: AsyncSession, user_id: int):
stmt = stmt.offset(offset).limit(note_find.page_size)

result = await db.execute(stmt)
notes = [NoteResponse.model_validate(note) for note in result.scalars().all()]
notes = [{"id": note.id, "title": note.title, "content": note.content, "article_id": note.article_id, "is_group": True if note.group_id else False, "create_time": note.create_time, "update_time": note.update_time} for note in result.scalars().all()]
return notes, total_count

async def find_notes_title_in_db(note_find: NoteFind, db: AsyncSession):
Expand Down