36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends
|
|
|
|
from backend.app.api.schemas import (
|
|
BookmarkCreateRequest,
|
|
BookmarkDeleteResponse,
|
|
BookmarkItem,
|
|
BookmarkListResponse,
|
|
)
|
|
from backend.app.dependencies import get_bookmark_service
|
|
from backend.app.services.bookmark_service import BookmarkService
|
|
|
|
router = APIRouter(prefix="/bookmarks")
|
|
|
|
|
|
@router.post("", response_model=BookmarkItem)
|
|
async def create_bookmark(
|
|
request: BookmarkCreateRequest,
|
|
service: BookmarkService = Depends(get_bookmark_service),
|
|
) -> BookmarkItem:
|
|
return service.create_bookmark(path=request.path, label=request.label)
|
|
|
|
|
|
@router.get("", response_model=BookmarkListResponse)
|
|
async def list_bookmarks(service: BookmarkService = Depends(get_bookmark_service)) -> BookmarkListResponse:
|
|
return service.list_bookmarks()
|
|
|
|
|
|
@router.delete("/{bookmark_id}", response_model=BookmarkDeleteResponse)
|
|
async def delete_bookmark(
|
|
bookmark_id: int,
|
|
service: BookmarkService = Depends(get_bookmark_service),
|
|
) -> BookmarkDeleteResponse:
|
|
return service.delete_bookmark(bookmark_id)
|