channel_app.channel.integration öğesinin kaynak kodu

import requests

from channel_app.channel.commands.orders.orders import (
    GetOrders, CheckOrders, SendUpdatedOrders, GetCancelledOrders,
    GetUpdatedOrderItems)
from channel_app.channel.commands.product_images import (
    SendUpdatedImages, SendInsertedImages, CheckImages)
from channel_app.channel.commands.product_prices import (
    CheckPrices, SendInsertedPrices, SendUpdatedPrices)
from channel_app.channel.commands.product_stocks import (
    SendUpdatedStocks, CheckStocks, SendInsertedStocks)
from channel_app.channel.commands.products import (
    SendInsertedProducts, CheckProducts, CheckDeletedProducts,
    SendUpdatedProducts, SendDeletedProducts)
from channel_app.channel.commands.setup import (
    GetCategoryTreeAndNodes, GetCategoryAttributes, GetChannelConfSchema,
    GetAttributes)
from channel_app.core.integration import BaseIntegration


[belgeler]class ChannelIntegration(BaseIntegration): """ Communicates with the Channel Api services through the commands defined. If an Api Client class is developed, initialization and deletion should be handled in ChannelIntegration class so that commands have easier access to the api object. """ _sent_data = {} actions = { "send_inserted_products": SendInsertedProducts, "send_updated_products": SendUpdatedProducts, "send_deleted_products": SendDeletedProducts, "check_products": CheckProducts, "check_deleted_products": CheckDeletedProducts, "send_updated_stocks": SendUpdatedStocks, "send_inserted_stocks": SendInsertedStocks, "send_updated_prices": SendUpdatedPrices, "send_inserted_prices": SendInsertedPrices, "send_updated_images": SendUpdatedImages, "send_inserted_images": SendInsertedImages, "check_stocks": CheckStocks, "check_prices": CheckPrices, "check_images": CheckImages, "get_category_tree_and_nodes": GetCategoryTreeAndNodes, "get_channel_conf_schema": GetChannelConfSchema, "get_category_attributes": GetCategoryAttributes, "get_attributes": GetAttributes, "get_orders": GetOrders, "get_updated_order_items": GetUpdatedOrderItems, "send_updated_orders": SendUpdatedOrders, "check_orders": CheckOrders, "get_cancelled_orders": GetCancelledOrders } def __init__(self): from channel_app.core import settings self.channel_id = settings.OMNITRON_CHANNEL_ID self.catalog_id = settings.OMNITRON_CATALOG_ID def create_session(self): from channel_app.core import settings session = requests.Session() connections = self.channel.conf.get( 'connection_pool_count', settings.DEFAULT_CONNECTION_POOL_COUNT) max_size = self.channel.conf.get( 'connection_pool_max_size', settings.DEFAULT_CONNECTION_POOL_MAX_SIZE) retry = self.channel.conf.get( 'connection_pool_retry', settings.DEFAULT_CONNECTION_POOL_RETRY) adapter = requests.adapters.HTTPAdapter(pool_connections=connections, pool_maxsize=max_size, max_retries=retry) session.mount('http://', adapter) session.mount('https://', adapter) return session @property def _session(self): __session = getattr(self, "__session", None) if __session: return __session session = self.create_session() setattr(self, "__session", session) return session