Files
notepad-server/app/routes.py
T

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")