コード例 #1
0
        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)
コード例 #2
0
        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)
コード例 #3
0
        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)
コード例 #4
0
        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)
コード例 #5
0
            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
コード例 #6
0
ファイル: gateway.py プロジェクト: derekcao0226/purplship
    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