fromJson<T extends GliderModel> static method

T fromJson<T extends GliderModel>(
  1. Map<String, dynamic> data,
  2. T constructor()
)

Validate and parse data into this model

Implementation

static T fromJson<T extends GliderModel>(Map<String, dynamic> data, T Function() constructor) {
  final instance = constructor();
  final errors = <ValidationError>[];

  try {
    instance.validate(data);
    return instance;
  } on ValidationError catch (e) {
    errors.add(e);
  } catch (e) {
    if (e is ValidationException) {
      errors.addAll(e.errors);
    } else {
      errors.add(ValidationError('unknown', e.toString()));
    }
  }

  if (errors.isNotEmpty) {
    throw ValidationException(errors);
  }

  return instance;
}