dhisUrl method
Implementation
Future<String> dhisUrl() async {
if (this.useUserOrgUnit == true) {
final userOrgUnits =
await UserOrganisationUnitQuery(database: database).get();
this.orgUnit =
userOrgUnits.map((userOrgUnit) => userOrgUnit.orgUnit).join(';');
}
String orgUnitMode = 'ouMode=';
switch (this.ouMode) {
case OrgUnitMode.DESCENDANTS:
orgUnitMode += 'DESCENDANTS';
break;
case OrgUnitMode.CHILDREN:
orgUnitMode += 'CHILDREN';
break;
case OrgUnitMode.SELECTED:
orgUnitMode += 'SELECTED';
break;
case OrgUnitMode.ACCESSIBLE:
orgUnitMode += 'ACCESSIBLE';
break;
default:
orgUnitMode += 'SELECTED';
break;
}
String url =
'trackedEntityInstances.json?ou=${this.orgUnit}&$orgUnitMode&program=${this.program}&pageSize=50&order=created:desc&fields=${(this.selected).isNotEmpty ? this.selected.join(',') : '*'}${this.attributeFilters?.length == 0 ? "" : "&" + (this.attributeFilters?.map((queryFilterItem) {
return "filter=" +
queryFilterItem.attribute +
(queryFilterItem.condition == QueryCondition.In
? ":IN:"
: ":EQ:") +
queryFilterItem.value;
}).join("&") as String)}';
return Future.value(url);
}