fixing DQ issues

This commit is contained in:
2025-09-14 15:47:38 +02:00
parent 3eb18ef91e
commit 0ce708cf09
27 changed files with 430 additions and 214 deletions

View File

@@ -1,3 +1,12 @@
# app/services/marketplace_service.py
"""Summary description ....
This module provides classes and functions for:
- ....
- ....
- ....
"""
import logging
from datetime import datetime
from typing import List, Optional
@@ -14,6 +23,7 @@ logger = logging.getLogger(__name__)
class MarketplaceService:
def __init__(self):
"""Class constructor."""
pass
def validate_shop_access(self, db: Session, shop_code: str, user: User) -> Shop:
@@ -37,7 +47,7 @@ class MarketplaceService:
def create_import_job(
self, db: Session, request: MarketplaceImportRequest, user: User
) -> MarketplaceImportJob:
"""Create a new marketplace import job"""
"""Create a new marketplace import job."""
# Validate shop access first
shop = self.validate_shop_access(db, request.shop_code, user)
@@ -65,7 +75,7 @@ class MarketplaceService:
def get_import_job_by_id(
self, db: Session, job_id: int, user: User
) -> MarketplaceImportJob:
"""Get a marketplace import job by ID with access control"""
"""Get a marketplace import job by ID with access control."""
job = (
db.query(MarketplaceImportJob)
.filter(MarketplaceImportJob.id == job_id)
@@ -89,7 +99,7 @@ class MarketplaceService:
skip: int = 0,
limit: int = 50,
) -> List[MarketplaceImportJob]:
"""Get marketplace import jobs with filtering and access control"""
"""Get marketplace import jobs with filtering and access control."""
query = db.query(MarketplaceImportJob)
# Users can only see their own jobs, admins can see all
@@ -117,7 +127,7 @@ class MarketplaceService:
def update_job_status(
self, db: Session, job_id: int, status: str, **kwargs
) -> MarketplaceImportJob:
"""Update marketplace import job status and other fields"""
"""Update marketplace import job status and other fields."""
job = (
db.query(MarketplaceImportJob)
.filter(MarketplaceImportJob.id == job_id)
@@ -151,7 +161,7 @@ class MarketplaceService:
return job
def get_job_stats(self, db: Session, user: User) -> dict:
"""Get statistics about marketplace import jobs for a user"""
"""Get statistics about marketplace import jobs for a user."""
query = db.query(MarketplaceImportJob)
# Users can only see their own jobs, admins can see all
@@ -177,7 +187,7 @@ class MarketplaceService:
def convert_to_response_model(
self, job: MarketplaceImportJob
) -> MarketplaceImportJobResponse:
"""Convert database model to API response model"""
"""Convert database model to API response model."""
return MarketplaceImportJobResponse(
job_id=job.id,
status=job.status,
@@ -200,7 +210,7 @@ class MarketplaceService:
def cancel_import_job(
self, db: Session, job_id: int, user: User
) -> MarketplaceImportJob:
"""Cancel a pending or running import job"""
"""Cancel a pending or running import job."""
job = self.get_import_job_by_id(db, job_id, user)
if job.status not in ["pending", "running"]:
@@ -216,7 +226,7 @@ class MarketplaceService:
return job
def delete_import_job(self, db: Session, job_id: int, user: User) -> bool:
"""Delete a marketplace import job"""
"""Delete a marketplace import job."""
job = self.get_import_job_by_id(db, job_id, user)
# Only allow deletion of completed, failed, or cancelled jobs