Source code for worldline.acquiring.sdk.communication.multipart_form_data_object
import uuid
from typing import Mapping
from worldline.acquiring.sdk.domain.uploadable_file import UploadableFile
[docs]
class MultipartFormDataObject(object):
    """
    A representation of a multipart/form-data object.
    """
    def __init__(self):
        self.__boundary = str(uuid.uuid4())
        self.__content_type = "multipart/form-data; boundary=" + self.__boundary
        self.__values = {}
        self.__files = {}
    @property
    def boundary(self) -> str:
        return self.__boundary
    @property
    def content_type(self) -> str:
        return self.__content_type
    @property
    def values(self) -> Mapping[str, str]:
        return self.__values
    @property
    def files(self) -> Mapping[str, UploadableFile]:
        return self.__files
[docs]
    def add_value(self, parameter_name: str, value: str) -> None:
        if parameter_name is None or not parameter_name.strip():
            raise ValueError("parameter_name is required")
        if value is None:
            raise ValueError("value is required")
        if parameter_name in self.__values or parameter_name in self.__files:
            raise ValueError("duplicate parameterName: " + parameter_name)
        self.__values[parameter_name] = value
[docs]
    def add_file(self, parameter_name: str, uploadable_file: UploadableFile) -> None:
        if parameter_name is None or not parameter_name.strip():
            raise ValueError("parameter_name is required")
        if uploadable_file is None:
            raise ValueError("uploadable_file is required")
        if parameter_name in self.__values or parameter_name in self.__files:
            raise ValueError("duplicate parameterName: " + parameter_name)
        self.__files[parameter_name] = uploadable_file