bichnhan2701 commited on
Commit
cddfa37
·
1 Parent(s): e0a78e0

Add delete note

Browse files
app/api/notes/notes_delete.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import APIRouter, HTTPException
2
+ from app.services.note_store import get_note, delete_note
3
+
4
+
5
+ router = APIRouter(prefix="/notes", tags=["notes"])
6
+
7
+
8
+ @router.delete("/{note_id}")
9
+ def delete_note_api(note_id: str):
10
+ note = get_note(note_id)
11
+ if not note:
12
+ raise HTTPException(status_code=404, detail="Note not found")
13
+
14
+ delete_note(note_id)
15
+
16
+ return {
17
+ "note_id": note_id,
18
+ "deleted": True
19
+ }
app/main.py CHANGED
@@ -1,5 +1,5 @@
1
  from fastapi import FastAPI
2
- from app.api.notes import notes_text, notes_audio, notes_text_internal, notes_get, notes_update, notes_regenerate, notes_events, internal_notes
3
  from app.api.folders import folders_create, folders_get, folders_update, folders_delete
4
 
5
  app = FastAPI(title="Note Service API")
@@ -10,6 +10,7 @@ app.include_router(notes_audio.router)
10
  app.include_router(notes_text_internal.router)
11
  app.include_router(notes_get.router)
12
  app.include_router(notes_update.router)
 
13
  app.include_router(notes_regenerate.router)
14
  app.include_router(notes_events.router)
15
  app.include_router(internal_notes.router)
 
1
  from fastapi import FastAPI
2
+ from app.api.notes import notes_text, notes_audio, notes_text_internal, notes_get, notes_update, notes_delete, notes_regenerate, notes_events, internal_notes
3
  from app.api.folders import folders_create, folders_get, folders_update, folders_delete
4
 
5
  app = FastAPI(title="Note Service API")
 
10
  app.include_router(notes_text_internal.router)
11
  app.include_router(notes_get.router)
12
  app.include_router(notes_update.router)
13
+ app.include_router(notes_delete.router)
14
  app.include_router(notes_regenerate.router)
15
  app.include_router(notes_events.router)
16
  app.include_router(internal_notes.router)
app/services/folder_store.py CHANGED
@@ -1,6 +1,7 @@
1
  from app.infra.firebase import db
2
 
3
  COL = "folders"
 
4
 
5
  def create_folder(folder: dict):
6
  db.collection(COL).document(folder["folder_id"]).set(folder)
@@ -20,4 +21,14 @@ def update_folder(folder_id: str, data: dict):
20
 
21
 
22
  def delete_folder(folder_id: str):
 
 
 
 
 
 
 
 
 
 
23
  db.collection(COL).document(folder_id).delete()
 
1
  from app.infra.firebase import db
2
 
3
  COL = "folders"
4
+ NOTES_COL = "notes"
5
 
6
  def create_folder(folder: dict):
7
  db.collection(COL).document(folder["folder_id"]).set(folder)
 
21
 
22
 
23
  def delete_folder(folder_id: str):
24
+ # Set folder_id về None cho các note thuộc folder này
25
+ notes_query = db.collection(NOTES_COL).where("folder_id", "==", folder_id)
26
+ batch = db.batch()
27
+
28
+ for note_doc in notes_query.stream():
29
+ batch.update(note_doc.reference, {"folder_id": None})
30
+
31
+ batch.commit()
32
+
33
+ # Xóa folder
34
  db.collection(COL).document(folder_id).delete()
app/services/note_store.py CHANGED
@@ -23,4 +23,8 @@ def list_notes(folder_id: str | None = None):
23
  q = db.collection(COL)
24
  if folder_id:
25
  q = q.where("folder_id", "==", folder_id)
26
- return [d.to_dict() for d in q.stream()]
 
 
 
 
 
23
  q = db.collection(COL)
24
  if folder_id:
25
  q = q.where("folder_id", "==", folder_id)
26
+ return [d.to_dict() for d in q.stream()]
27
+
28
+
29
+ def delete_note(note_id: str):
30
+ db.collection(COL).document(note_id).delete()