PatchbayPermissionCapabilities.fromJson constructor
Implementation
factory PatchbayPermissionCapabilities.fromJson(Map<String, Object?> json) {
final String platform = _requiredString(
json['platform'],
'permissionCapabilityInvalid',
);
final String driver = _requiredString(
json['driver'],
'permissionCapabilityInvalid',
);
final String driverVersion = _requiredString(
json['driverVersion'],
'permissionCapabilityInvalid',
);
final Object? rawPermissions = json['permissions'];
if (rawPermissions is! Map<Object?, Object?>) {
throw const PatchbayPermissionWireException(
'permissionCapabilityInvalid',
);
}
final Map<String, PatchbayPermissionCapability> permissions =
<String, PatchbayPermissionCapability>{};
for (final MapEntry<Object?, Object?> entry in rawPermissions.entries) {
if (entry.key is! String ||
(entry.key! as String).isEmpty ||
entry.value is! Map<Object?, Object?>) {
throw const PatchbayPermissionWireException(
'permissionCapabilityInvalid',
);
}
permissions[entry.key! as String] = PatchbayPermissionCapability.fromJson(
Map<String, Object?>.from(entry.value! as Map),
);
}
return PatchbayPermissionCapabilities(
platform: platform,
driver: driver,
driverVersion: driverVersion,
permissions: Map<String, PatchbayPermissionCapability>.unmodifiable(
permissions,
),
);
}