submitConsent method
Implementation
Future<AllowConsentResult?> submitConsent(
ConsentMessage consentMessage) async {
Map<String, dynamic> payload = {
"_consent_message_id": consentMessage.id,
"_version": consentMessage.version
};
var trackingConsentMessageID =
Pam.shared.config?.trackingConsentMessageID ?? "x";
for (var element in consentMessage.permission) {
payload["_allow_${element.name.key}"] = element.allow;
if (consentMessage.id == trackingConsentMessageID &&
element.name == ConsentPermissionName.preferencesCookies) {
Pam.shared.setAllowTracking(true);
}
}
var body = await Pam.shared.createTrackingBody("allow_consent", payload);
var response = await Pam.shared.trackerAPI?.postTracker(body);
if (response == null) {
return null;
}
var result = AllowConsentResult(
response.contactID, response.database, response.consentID);
Pam.log([
"SUBMIT CONSENT",
"Type: ${consentMessage.type}, ID: ${consentMessage.id}",
...consentMessage.permission.map((t) => "β¦Ύ${t.name.key}=${t.allow}"),
"π₯π₯π₯π₯π₯ RESULT π₯π₯π₯π₯π₯",
response
]);
return result;
}