getAvancedRangking method
Future<List<AdvancedRanking> >
getAvancedRangking({
- required String distinctId,
- List<
String> ? categories, - bool? exactCategories,
- String? sector,
- String? sectorB,
- String? sectorC,
- String? activityType,
- String? pointType,
- num? startingPoints,
- num? limitPoints,
- num? rankingSize,
- num? page,
- num? perPage,
- bool? includeLoggedParticipant,
override
Implementation
@override
Future<List<AdvancedRanking>> getAvancedRangking({
required String distinctId,
List<String>? categories,
bool? exactCategories,
String? sector,
String? sectorB,
String? sectorC,
String? activityType,
String? pointType,
num? startingPoints,
num? limitPoints,
num? rankingSize,
num? page,
num? perPage,
bool? includeLoggedParticipant,
}) async {
final body = <String, dynamic>{
'api_key': Environment.apiKey,
'campaign': Environment.campaign,
'distinct_id': distinctId,
};
if (categories != null && categories.isNotEmpty) {
body['categories'] = categories;
}
if (exactCategories != null) body['exact_categories'] = exactCategories;
if (activityType != null && activityType.trim().isNotEmpty) {
body['activity_type'] = activityType;
}
if (pointType != null && pointType.trim().isNotEmpty) {
body['point_type'] = pointType;
}
if (startingPoints != null) body['starting_points'] = startingPoints;
if (limitPoints != null) body['limit_points'] = limitPoints;
if (rankingSize != null) body['ranking_size'] = rankingSize;
final queryParams = <String, dynamic>{};
if (sector != null && sector.trim().isNotEmpty) {
queryParams['sector'] = sector;
}
if (sectorB != null && sectorB.trim().isNotEmpty) {
queryParams['sector_b'] = sectorB;
}
if (sectorC != null && sectorC.trim().isNotEmpty) {
queryParams['sector_c'] = sectorC;
}
if (page != null) queryParams['page'] = page;
if (perPage != null) queryParams['per_page'] = perPage;
if (includeLoggedParticipant != null) {
queryParams['include_logged_participant'] = includeLoggedParticipant;
}
final response = await dio.post(
'/participants/ranks/advanced',
data: body,
queryParameters: queryParams,
);
final Map<String, dynamic> responseData = jsonDecode(response.data);
return _jsonToAdvancedRankingList(responseData);
}