mirror of
https://github.com/cyberbread-ru/notepad-server.git
synced 2026-07-14 12:51:04 +03:00
46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
|
|
from app.auth import verify_api_key
|
|
from app.models import Note, NoteCreate, NoteUpdate
|
|
from app.services import NoteService
|
|
|
|
router = APIRouter(
|
|
prefix="/notes",
|
|
tags=["notes"],
|
|
dependencies=[Depends(verify_api_key)],
|
|
)
|
|
_service = NoteService()
|
|
|
|
|
|
@router.get("/", response_model=list[Note])
|
|
def get_notes():
|
|
return _service.list()
|
|
|
|
|
|
@router.get("/{note_id}", response_model=Note)
|
|
def get_note(note_id: str):
|
|
note = _service.get(note_id)
|
|
if not note:
|
|
raise HTTPException(status_code=404, detail="Note not found")
|
|
return note
|
|
|
|
|
|
@router.post("/", response_model=Note, status_code=201)
|
|
def create_note(payload: NoteCreate):
|
|
return _service.create(payload.title, payload.content)
|
|
|
|
|
|
@router.put("/{note_id}", response_model=Note)
|
|
def update_note(note_id: str, payload: NoteUpdate):
|
|
note = _service.update(note_id, payload.title, payload.content)
|
|
if not note:
|
|
raise HTTPException(status_code=404, detail="Note not found")
|
|
return note
|
|
|
|
|
|
@router.delete("/{note_id}", status_code=204)
|
|
def delete_note(note_id: str):
|
|
deleted = _service.remove(note_id)
|
|
if not deleted:
|
|
raise HTTPException(status_code=404, detail="Note not found")
|