Credential.fromJson constructor
Deserialize json into Credential type.
Throws FormatException if json is not a valid Credential.
Implementation
factory Credential.fromJson(Map<String, dynamic> json) {
if (json['url'] is! String) {
throw const FormatException('Url is not provided for the credential');
}
final hostedUrl = validateAndNormalizeHostedUrl(json['url'] as String);
const knownKeys = {'url', 'token', 'env'};
final unknownFields = Map<String, dynamic>.fromEntries(
json.entries.where((kv) => !knownKeys.contains(kv.key)));
/// Returns [String] value from [json] at [key] index or `null` if [json]
/// doesn't contains [key].
///
/// Throws [FormatException] if value type is not [String].
String? lstring(String key) {
if (json.containsKey(key)) {
if (json[key] is! String) {
throw FormatException('Provided $key value should be string');
}
return json[key] as String;
}
return null;
}
return Credential._internal(
url: hostedUrl,
unknownFields: unknownFields,
token: lstring('token'),
env: lstring('env'),
);
}