transform method

  1. @override
FutureOr<Data> transform(
  1. Map<String, dynamic> dataMap
)
override

Implementation

@override
FutureOr<Data> transform(Map<String, dynamic> dataMap) async {
  //加载设备信息
  if (ApplicationProfileManager.instance.getDeviceParameters().isEmpty) {
    await ApplicationProfileManager.instance.loadDeviceInfo();
  }
  //加载应用信息
  if (ApplicationProfileManager.instance.getApplicationParameters().isEmpty) {
    await ApplicationProfileManager.instance.loadApplicationInfo();
  }

  int timestamp =
      dataMap[Constants.timestamp] ?? DateTime.now().millisecondsSinceEpoch;
  String eventName = dataMap[Constants.event] ?? Constants.unknown;
  String id = dataMap[Constants.id] ?? Ids.generateUUID();

  Map<String, dynamic> category =
      dataMap[Constants.category] ?? <String, dynamic>{};
  Map<String, dynamic> metric = dataMap[Constants.metric] ?? <String, dynamic>{};
  Map<String, dynamic> extra = dataMap[Constants.extra] ?? <String, dynamic>{};
  Map<String, dynamic> custom = dataMap[Constants.custom] ?? <String, dynamic>{};
  Map<String, dynamic> device =
      ApplicationProfileManager.instance.getDeviceParameters();
  Map<String, dynamic> application =
      ApplicationProfileManager.instance.getApplicationParameters();

  Data data = Data(id, timestamp, eventName, category, metric, extra,
      custom, device, application);
  return data;
}