ZegoUIKitAdvanceInvitationSendProtocol.fromJson constructor
ZegoUIKitAdvanceInvitationSendProtocol.fromJson(
- Map<String, dynamic> json
)
Implementation
factory ZegoUIKitAdvanceInvitationSendProtocol.fromJson(
Map<String, dynamic> json) {
ZegoUIKitUser inviter = ZegoUIKitUser.empty();
if (json.containsKey('inviter')) {
inviter = ZegoUIKitUser.fromJson(
json['inviter'] as Map<String, dynamic>? ?? {},
);
}
/// for support web invitation protocol
else if (json.containsKey('inviter_id') ||
json.containsKey('inviter_name')) {
inviter = ZegoUIKitUser(
id: json['inviter_id'] as String? ?? '',
name: json['inviter_name'] as String? ?? '',
);
}
List<String> invitees = [];
if (json.containsKey('invitees')) {
invitees = List<String>.from(json['invitees']);
}
String customData = '';
if (json.containsKey('custom_data')) {
customData = json['custom_data'] as String? ?? '';
}
/// for support web invitation protocol
else if (json.containsKey('data')) {
customData = json['data'] as String? ?? '';
try {
final extendedDataMap = jsonDecode(customData) as Map<String, dynamic>;
if (extendedDataMap.containsKey('inviter')) {
inviter = ZegoUIKitUser.fromJson(
extendedDataMap['inviter'] as Map<String, dynamic>? ?? {},
);
}
if (extendedDataMap.containsKey('invitees')) {
final webInviteesMap =
extendedDataMap['invitees'] as List<dynamic>? ?? [];
invitees = webInviteesMap.map((item) {
final inviteeMap = item as Map<String, dynamic>? ?? {};
return inviteeMap['user_id'] as String? ?? '';
}).toList();
}
} catch (e) {
ZegoLoggerService.logInfo(
'fromJson, e:$e',
tag: 'uikit',
subTag: 'ZegoUIKitAdvanceInvitationSendProtocol',
);
}
}
return ZegoUIKitAdvanceInvitationSendProtocol(
inviter: inviter,
invitees: invitees,
type: json['type'] as int? ?? -1,
customData: customData,
);
}