ElicitationRequest.fromJson constructor
ElicitationRequest.fromJson(
- Map<String, dynamic> params
)
Implementation
factory ElicitationRequest.fromJson(Map<String, dynamic> params) {
final modeStr = params['mode'] as String?;
final mode =
modeStr == 'url' ? ElicitationMode.url : ElicitationMode.form;
final schema = params['requestedSchema'] != null
? Map<String, dynamic>.from(params['requestedSchema'] as Map)
: null;
final fields = <String, ElicitationFieldSchema>{};
final props = schema?['properties'];
if (props is Map) {
props.forEach((key, value) {
if (value is Map) {
fields[key.toString()] = ElicitationFieldSchema.fromJson(
Map<String, dynamic>.from(value),
);
}
});
}
final requiredRaw = schema?['required'];
final requiredFields = requiredRaw is List
? requiredRaw.map((e) => e.toString()).toList()
: <String>[];
return ElicitationRequest(
message: params['message'] as String? ?? '',
mode: mode,
url: params['url'] as String?,
requestedSchema: schema,
fields: fields,
requiredFields: requiredFields,
raw: Map<String, dynamic>.from(params),
);
}