Actualmente, el capítulo data/models carece de instrucciones sobre el manejo de DateTimes y Lists provenientes de un servicio externo.
Con este issue se busca incorporar estas reglas al capítulo. La propuesta del manejo de dichos tipos de datos es la siguiente:
- Para
DateTime
class FooModel extends Foo {
const FooModel({
required super.date
});
factory FooClass.fromMap(DataMap data) {
final date = DateTime.tryParse(data['date'] as String? ?? '') ?? DateTime.now();
return FooClass(
date: date
);
}
}
Las fechas deben tener seguridad contra nulidad y fechas en formatos inválidos (por ello, se propone el uso del constructor DateTime.tryParse).
- Para
List
class FooModel extends Foo {
const FooModel({
required super.someList
});
factory FooClass.fromMap(DataMap data) {
final list = (map['some_list'] as List<dynamic>? ?? [])
..removeWhere((e) => e == null);
return FooClass(
someList: list
);
}
}
Esta propuesta de manejo de listas maneja el caso de que el campo venga nulo y elimina cualquier valor nulo dentro de la lista que pudiera causar una excepción en el mapeo de objetos.
Actualmente, el capítulo
data/modelscarece de instrucciones sobre el manejo deDateTimes yLists provenientes de un servicio externo.Con este issue se busca incorporar estas reglas al capítulo. La propuesta del manejo de dichos tipos de datos es la siguiente:
DateTimeLas fechas deben tener seguridad contra nulidad y fechas en formatos inválidos (por ello, se propone el uso del constructor
DateTime.tryParse).ListEsta propuesta de manejo de listas maneja el caso de que el campo venga nulo y elimina cualquier valor nulo dentro de la lista que pudiera causar una excepción en el mapeo de objetos.