ModificationMessage.fromJson constructor

ModificationMessage.fromJson(
  1. Map<String, dynamic> json
)

Create from JSON (expects the new format with campaignId as key)

Implementation

factory ModificationMessage.fromJson(Map<String, dynamic> json) {
  // Extract the first key which should be the campaignId
  final campaignKey = json.keys.first;
  final campaignData = json[campaignKey] as Map<String, dynamic>;
  final variationData = campaignData['variation'] as Map<String, dynamic>;
  final modificationsData =
      variationData['modifications'] as Map<String, dynamic>;
  final flagValue = modificationsData['value'] as Map<String, dynamic>;

  return ModificationMessage(
    campaignId: campaignData['campaignId'] ?? campaignKey,
    campaignName: campaignData['campaignName'] ?? '',
    campaignType: campaignData['campaignType'] ?? '',
    campaignSlug: campaignData['CampaignSlug'],
    variationGroupId: campaignData['variationGroupId'] ?? '',
    variationGroupName: campaignData['variationGroupName'] ?? '',
    variation: VariationInfo(
      id: variationData['id'] ?? '',
      name: variationData['name'] ?? '',
      reference: variationData['reference'] ?? false,
      modifications: flagValue,
    ),
  );
}