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