- Replace black, isort, and flake8 with Ruff (all-in-one linter and formatter) - Add comprehensive pyproject.toml configuration - Simplify Makefile code quality targets - Configure exclusions for venv/.venv in pyproject.toml - Auto-fix 1,359 linting issues across codebase Benefits: - Much faster builds (Ruff is written in Rust) - Single tool replaces multiple tools - More comprehensive rule set (UP, B, C4, SIM, PIE, RET, Q) - All configuration centralized in pyproject.toml - Better import sorting and formatting consistency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
# app/api/v1/admin/marketplace.py
|
|
"""
|
|
Marketplace import job monitoring endpoints for admin.
|
|
"""
|
|
|
|
import logging
|
|
|
|
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.api.deps import get_current_admin_api
|
|
from app.core.database import get_db
|
|
from app.services.admin_service import admin_service
|
|
from app.services.stats_service import stats_service
|
|
from models.database.user import User
|
|
from models.schema.marketplace_import_job import MarketplaceImportJobResponse
|
|
|
|
router = APIRouter(prefix="/marketplace-import-jobs")
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@router.get("", response_model=list[MarketplaceImportJobResponse])
|
|
def get_all_marketplace_import_jobs(
|
|
marketplace: str | None = Query(None),
|
|
vendor_name: str | None = Query(None),
|
|
status: str | None = Query(None),
|
|
skip: int = Query(0, ge=0),
|
|
limit: int = Query(100, ge=1, le=100),
|
|
db: Session = Depends(get_db),
|
|
current_admin: User = Depends(get_current_admin_api),
|
|
):
|
|
"""Get all marketplace import jobs (Admin only)."""
|
|
return admin_service.get_marketplace_import_jobs(
|
|
db=db,
|
|
marketplace=marketplace,
|
|
vendor_name=vendor_name,
|
|
status=status,
|
|
skip=skip,
|
|
limit=limit,
|
|
)
|
|
|
|
|
|
@router.get("/stats")
|
|
def get_import_statistics(
|
|
db: Session = Depends(get_db),
|
|
current_admin: User = Depends(get_current_admin_api),
|
|
):
|
|
"""Get marketplace import statistics (Admin only)."""
|
|
return stats_service.get_import_statistics(db)
|