downloadByProgramAndInstances method
Future
downloadByProgramAndInstances(
{ - required String program,
- required List<String> trackedEntityInstances,
- Dio? dioTestClient,
})
Implementation
Future downloadByProgramAndInstances(
{required String program,
required List<String> trackedEntityInstances,
Dio? dioTestClient}) async {
final dhisUrl =
'trackedEntityInstances.json?program=${program}&fields=${(this.selected).isNotEmpty ? this.selected.join(',') : '*'}&trackedEntityInstance=${trackedEntityInstances.join(";")}';
final response = await HttpClient.get(dhisUrl,
database: this.database, dioTestClient: dioTestClient);
// if (response.body != null && response.body.runtimeType){}
data = response.body != null && response.body[this.apiResourceName] != null
? response.body[this.apiResourceName]?.toList()
: [];
List<TrackedEntityInstance> trackedEntityInstanceData =
data.map<TrackedEntityInstance>((dataItem) {
Map<String, dynamic> dataMap = dataItem as Map<String, dynamic>;
dataMap['dirty'] = false;
dataMap['synced'] = true;
return TrackedEntityInstance.fromJson(dataMap);
}).toList();
await TrackedEntityInstanceQuery(database: database)
.setData(trackedEntityInstanceData)
.save();
}