initialize method
Initializes the provider.
Should set initialized to true
at the very end of the
implementation.
Implementation
@override
Future<void> initialize({dynamic data, String? userId = ""}) async {
if (initialized) {
return;
}
await service.repository.initialize();
this.userId = userId ?? "";
final allData = await service.getAll(userId: userId);
if (allData.isNotEmpty) {
_data = allData.first;
} else if (createIfDontExist) {
T newData = factoryFunc().copyWith(userId: userId) as T;
newData = newData.copyWith(id: await service.create(newData)) as T;
_data = newData;
} else {
_data = const InvalidObject();
}
initialized = true;
}