Source code for worldline.connect.sdk.json.marshaller

from abc import ABC, abstractmethod
from typing import Any, Optional, Type, TypeVar, Union


T = TypeVar('T')


[docs] class Marshaller(ABC): """ Used to marshal and unmarshal Worldline Global Collect platform request and response objects to and from JSON. """
[docs] @abstractmethod def marshal(self, request_object: Any) -> str: """ Marshal a request object to a JSON string. :param request_object: the object to marshal into a serialized JSON string :return: the serialized JSON string of the request_object """ raise NotImplementedError
[docs] @abstractmethod def unmarshal(self, response_json: Union[str, bytes, None], type_class: Type[T]) -> Optional[T]: """ Unmarshal a JSON string to a response object. :param response_json: the json body that should be unmarshalled :param type_class: The class to which the response_json should be unmarshalled :raise MarshallerSyntaxException: if the JSON is not a valid representation for an object of the given type """ raise NotImplementedError