Initial commit
This commit is contained in:
68
backend/app/api/endpoints/packages.py
Normal file
68
backend/app/api/endpoints/packages.py
Normal file
@@ -0,0 +1,68 @@
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
from app.core.security import get_current_user, User
|
||||
from app.services.packages import PackageService, PackageListResponse, PackageOperationResult
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/info")
|
||||
async def get_packages_info(current_user: User = Depends(get_current_user)):
|
||||
"""Obtient les infos sur les paquets (total, installés, upgradables)"""
|
||||
try:
|
||||
return PackageService.get_system_info()
|
||||
except Exception as e:
|
||||
return {"error": str(e)}
|
||||
|
||||
|
||||
@router.get("/installed", response_model=PackageListResponse)
|
||||
async def list_installed_packages(
|
||||
search: str = Query(None, description="Rechercher un paquet"),
|
||||
limit: int = Query(50, ge=1, le=200),
|
||||
offset: int = Query(0, ge=0),
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""Liste les paquets installés"""
|
||||
try:
|
||||
return PackageService.list_installed_packages(search=search, limit=limit, offset=offset)
|
||||
except Exception as e:
|
||||
return {"error": str(e)}
|
||||
|
||||
|
||||
@router.get("/search")
|
||||
async def search_packages(
|
||||
q: str = Query(..., description="Termes de recherche"),
|
||||
limit: int = Query(20, ge=1, le=100),
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""Recherche des paquets disponibles"""
|
||||
try:
|
||||
return PackageService.search_packages(q, limit=limit)
|
||||
except Exception as e:
|
||||
return {"error": str(e)}
|
||||
|
||||
|
||||
@router.post("/install")
|
||||
async def install_package(
|
||||
package: str = Query(..., description="Nom du paquet à installer"),
|
||||
current_user: User = Depends(get_current_user)
|
||||
) -> PackageOperationResult:
|
||||
"""Installe un paquet"""
|
||||
return await PackageService.install_package(package)
|
||||
|
||||
|
||||
@router.post("/remove")
|
||||
async def remove_package(
|
||||
package: str = Query(..., description="Nom du paquet à supprimer"),
|
||||
current_user: User = Depends(get_current_user)
|
||||
) -> PackageOperationResult:
|
||||
"""Supprime un paquet"""
|
||||
return await PackageService.remove_package(package)
|
||||
|
||||
|
||||
@router.post("/upgrade")
|
||||
async def upgrade_package(
|
||||
package: str = Query(..., description="Nom du paquet à mettre à jour"),
|
||||
current_user: User = Depends(get_current_user)
|
||||
) -> PackageOperationResult:
|
||||
"""Met à jour un paquet"""
|
||||
return await PackageService.upgrade_package(package)
|
||||
Reference in New Issue
Block a user