def process(job: Job): if job.data is None: return job.fallback subprocess = { "update_pickup": _update_pickup, "get_pickup": _get_pickup, } if job.id not in subprocess: raise ShippingSDKError( f"Unknown pickup request job id: {job.id}") return subprocess[job.id](job)
def process(job: Job): if job.data is None: return job.fallback subprocess = { "create_pickup": _create_pickup, "availability": _availability, } if job.id not in subprocess: raise ShippingSDKError( f"Unknown pickup request job id: {job.id}") return subprocess[job.id](job)
def process(job: Job): if job.data is None: return job.fallback subprocess = { "contract_shipment": _contract_shipment, "non_contract_shipment": _non_contract_shipment, "shipment_label": _get_label, } if job.id not in subprocess: raise ShippingSDKError( f"Unknown shipment request job id: {job.id}") return subprocess[job.id](job)
def process(job: Job): if job.data is None: return job.fallback subprocess = { "info": lambda _: _request('GET', job.data.serialize()), "refund": lambda _: _request( 'POST', job.data['id'], '/refund', data=bytearray(job.data['payload'].serialize(), "utf-8")), "cancel": lambda _: _request('DELETE', job.data.serialize()), } if job.id not in subprocess: raise ShippingSDKError( f"Unknown shipment cancel request job id: {job.id}") return subprocess[job.id](job)
def initializer(settings: Union[Settings, dict]) -> Gateway: """Initialize a provider gateway with the required settings Args: settings (Union[Settings, dict]): the provider settings Returns: Gateway: a gateway instance """ try: settings_value: Settings = (provider.Settings( **settings) if isinstance(settings, dict) else settings) return Gateway( settings=settings_value, proxy=provider.Proxy(settings_value), mapper=provider.Mapper(settings_value), ) except Exception as er: raise ShippingSDKError( f"Failed to setup provider '{key}'") from er
def __getitem__(self, key: str) -> ICreate: """Map a provider's name to return a way to initialize it Args: key (str): a provider's name Returns: ICreate: the corresponding provider's Gateway initializer """ try: provider = self.providers[key] def initializer(settings: Union[Settings, dict]) -> Gateway: """Initialize a provider gateway with the required settings Args: settings (Union[Settings, dict]): the provider settings Returns: Gateway: a gateway instance """ try: settings_value: Settings = ( provider.Settings(**settings) if isinstance(settings, dict) else settings ) return Gateway( settings=settings_value, proxy=provider.Proxy(settings_value), mapper=provider.Mapper(settings_value), ) except Exception as er: raise ShippingSDKError(f"Failed to setup provider '{key}'") from er return ICreate(initializer) except KeyError as e: raise ShippingSDKError(f"Unknown provider '{key}'") from e