PatchbayPermissionDriverRequest.fromJson constructor
Implementation
factory PatchbayPermissionDriverRequest.fromJson(Map<String, Object?> json) {
final Object? rawSessionRef = json['sessionRef'];
if (rawSessionRef != null && rawSessionRef is! Map<Object?, Object?>) {
throw const PatchbayPermissionWireException(
'permissionDriverRequestInvalid',
);
}
final Object? rawTimeout = json['timeoutMs'];
if (rawTimeout is! int || rawTimeout <= 0) {
throw const PatchbayPermissionWireException(
'permissionDriverRequestInvalid',
);
}
return PatchbayPermissionDriverRequest(
protocolVersion: _requiredString(
json['protocolVersion'],
'permissionDriverRequestInvalid',
),
requestId: _requiredString(
json['requestId'],
'permissionDriverRequestInvalid',
),
operation: _requiredEnum(
json['operation'],
PatchbayPermissionOperation.values,
'permissionDriverRequestInvalid',
),
deviceId: _optionalString(
json['deviceId'],
'permissionDriverRequestInvalid',
),
applicationId: _optionalString(
json['applicationId'],
'permissionDriverRequestInvalid',
),
sessionRef: rawSessionRef == null
? null
: Map<String, Object?>.unmodifiable(
Map<String, Object?>.from(rawSessionRef as Map),
),
permission: _optionalString(
json['permission'],
'permissionDriverRequestInvalid',
),
policy: _optionalString(json['policy'], 'permissionDriverRequestInvalid'),
state: json['state'] == null
? null
: _requiredEnum(
json['state'],
PatchbayPermissionState.values,
'permissionDriverRequestInvalid',
),
decision: json['decision'] == null
? null
: _requiredEnum(
json['decision'],
PatchbayPermissionDecision.values,
'permissionDriverRequestInvalid',
),
timeoutMs: rawTimeout,
);
}