generatePayload method

String? generatePayload(
  1. CPM cpm
)

Implementation

String? generatePayload(CPM cpm) {
  try {
    String payload = "";
    payload += _format(
          id: ID.payloadFormatIndicator,
          value: _toHex(cpm.dataPayloadFormatIndicator),
        ) ??
        "";
    if (cpm.applicationTemplates.isNotEmpty) {
      for (var applicationTemplate in cpm.applicationTemplates) {
        String _applicationTemplate =
            _formattingTemplate(applicationTemplate.berTvl ?? BerTvl()) ?? "";

        if (applicationTemplate.applicationSpecificTransparentTemplates !=
            null) {
          final specificTransparentTemplates =
              applicationTemplate.applicationSpecificTransparentTemplates ??
                  [];
          for (var specificTransparentTemplate
              in specificTransparentTemplates) {
            String _specificTransparentTemplate =
                _formattingTemplate(specificTransparentTemplate) ?? "";
            _applicationTemplate += _format(
                    id: ID.applicationSpecificTransparentTemplate,
                    value: _specificTransparentTemplate) ??
                "";
          }
        }
        payload += _format(
                id: ID.applicationTemplate, value: _applicationTemplate) ??
            "";
      }
    }
    if (cpm.commonDataTemplates.isNotEmpty) {
      for (var commonDataTemplate in cpm.commonDataTemplates) {
        String _commonDataTemplate =
            _formattingTemplate(commonDataTemplate.berTvl ?? BerTvl()) ?? "";
        if (commonDataTemplate.commonDataTransparentTemplates != null) {
          final transparentTemplates =
              commonDataTemplate.commonDataTransparentTemplates ?? [];
          for (var transparentTemplate in transparentTemplates) {
            String _transparentTemplate =
                _formattingTemplate(transparentTemplate) ?? "";
            _commonDataTemplate += _format(
                    id: ID.commonDataTransparentTemplate,
                    value: _transparentTemplate) ??
                "";
          }
        }
        payload +=
            _format(id: ID.commonDataTemplate, value: _commonDataTemplate) ??
                "";
      }
    }
    final decoded = hex.decode(payload);
    payload = base64.encode(decoded);

    return payload;
  } catch (e) {
    return null;
  }
}