35 lines
943 B
Python
35 lines
943 B
Python
"""画廊 API。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, HTTPException
|
|
|
|
from ..services import gallery as svc
|
|
from ..providers import ProviderError
|
|
|
|
router = APIRouter(prefix="/api/galleries", tags=["gallery"])
|
|
|
|
|
|
@router.get("")
|
|
def list_galleries():
|
|
return svc.list_galleries()
|
|
|
|
|
|
@router.get("/{profile_name}")
|
|
def list_gallery(profile_name: str):
|
|
try:
|
|
return svc.list_gallery(profile_name)
|
|
except ProviderError as exc:
|
|
raise HTTPException(status_code=exc.status, detail=exc.message)
|
|
|
|
|
|
@router.delete("/{profile_name}/{filename}")
|
|
def delete_gallery_item(profile_name: str, filename: str):
|
|
try:
|
|
svc.delete_gallery_item(profile_name, filename)
|
|
except FileNotFoundError as exc:
|
|
raise HTTPException(status_code=404, detail=str(exc))
|
|
except ProviderError as exc:
|
|
raise HTTPException(status_code=exc.status, detail=exc.message)
|
|
return {"ok": True}
|