Sobes.tech
Middle

async def import_orders( self, customer_ids: list[int], imported_orders: list[dict[str, Any]] = [], ) -> dict[str, Any]: """ Importē pasūtījumus klientu sarakstam """ results = { "created": 0, "failed": 0, "orders": imported_orders, } for customer_id in customer_ids: try: # Ārējā API atgriež klienta neapstrādāto pasūtījumu sarakstu. orders = self.api_client.get_orders(customer_id) for order in orders: normalized_order = await self.normalize_order(order) # Atcelti pasūtījumi nedrīkst nonākt datubāzē if normalized_order["status"] == "cancelled": continue await self.save_order(normalized_order) results["created"] += 1 results["orders"].append(normalized_order) except Exception as error: logger.error( f"Nevar importēt pasūtījumus klientam {customer_id}: {error}" ) results["failed"] += 1 return results async def normalize_order(self, order: dict[str, Any]) -> dict[str, Any]: """ Pārvērš pasūtījumu no ārējā API formāta iekšējā formātā. Ārējā sistēma var atgriezt papildu laukus, tāpēc importētājs saglabā tikai datus, kas nepieciešami vietējai sistēmai. Args: order: Sākotnējais pasūtījums, kas iegūts no API. Returns: Normalizēts vārdnīca ar pasūtījuma datiem. """