Files
GSFV2/gsf/lib/repository/services/cj/leader_board_ranking.dart
2024-04-22 23:50:28 -07:00

174 lines
5.7 KiB
Dart

import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:gsp_app/modals/leaderboard_ranking_model.dart';
import 'package:gsp_app/repository/endpoints.dart';
import 'package:gsp_app/repository/response_data.dart';
import '../../../modals/rank_position.dart';
import '../../../view_model/my_ranking_controller.dart';
class RankingLeaderboard extends GetConnect {
MyRankingController myRankingController = Get.put(MyRankingController());
String generateGroupLevel(String groupLevel) {
if (groupLevel == "Swole") {
// myRankingController.groupLevel.value = "Swole";
return "elites";
} else if (groupLevel == "Up Steppers") {
// myRankingController.groupLevel.value = "Up Steppers";
return "gameChangers";
} else if (groupLevel == "Rookie") {
// myRankingController.groupLevel.value = "Underdogs";
return "underdogs";
}
return "elites";
}
String generateGender(String gender) {
if (gender == "Male") {
// myRankingController.gender.value = "Male";
return "male";
} else if (gender == "Female") {
// myRankingController.gender.value = "Female";
return "female";
} else if (gender == "All") {
// myRankingController.gender.value = "All";
return "all";
}
return "all";
}
Future<ResponseModel> getLeaderboardRanking(
{required String gender, required String groupLevel}) async {
var response = await post(Endpoints.getLeaderboraderRanking, {
"group_level": generateGroupLevel(groupLevel),
"gender": generateGender(gender)
}, headers: {
"access-token": GetStorage().read("token"),
});
if (response.body == null &&
response.body.toString().contains("<!DOCTYPE html>")) {
return const ResponseModel(
responseStatus: ResponseStatus.error, data: null);
} else {
Map data = response.body;
bool isAuthenticated = data["success"] ?? false;
if (isAuthenticated) {
// var allData = data["user_ranking"];
// var allData = data["user_data"];
// print("All data of ranking users $data");
// ["user_data"];
return ResponseModel(
responseStatus: ResponseStatus.success,
data: RnakingModel.fromJson(data as Map<String, dynamic>));
} else {
return const ResponseModel(
responseStatus: ResponseStatus.error, data: null);
}
}
}
Future<ResponseModel> getLeaderBoardDataWithoutFilter() async {
var response = await post(Endpoints.getLeaderboraderRanking, {}, headers: {
"access-token": GetStorage().read("token"),
});
// print('Ranking without filter ${response.body}');
if (response.body == null &&
response.body.toString().contains("<!DOCTYPE html>")) {
return const ResponseModel(
responseStatus: ResponseStatus.error, data: null);
} else {
Map data = response.body;
bool isAuthenticated = data["success"] ?? false;
if (isAuthenticated) {
// var allData = data["user_data"];
// var allData = data["user_data"];
// print("All data of ranking users $allData");
// ["user_data"];
return ResponseModel(
responseStatus: ResponseStatus.success,
data: RnakingModel.fromJson(data as Map<String, dynamic>));
} else {
return const ResponseModel(
responseStatus: ResponseStatus.error, data: null);
}
}
}
Future<ResponseModel> getLeaderBoardDataWithoutFilterHome() async {
var response = await post(Endpoints.getLeaderboraderRanking, { "group_level": "elites",}, headers: {
"access-token": GetStorage().read("token"),
});
// print('Ranking without filter ${response.body}');
if (response.body == null &&
response.body.toString().contains("<!DOCTYPE html>")) {
return const ResponseModel(
responseStatus: ResponseStatus.error, data: null);
} else {
Map data = response.body;
bool isAuthenticated = data["success"] ?? false;
if (isAuthenticated) {
// var allData = data["user_data"];
// var allData = data["user_data"];
// print("All data of ranking users $allData");
// ["user_data"];
return ResponseModel(
responseStatus: ResponseStatus.success,
data: RnakingModel.fromJson(data as Map<String, dynamic>));
} else {
return const ResponseModel(
responseStatus: ResponseStatus.error, data: null);
}
}
}
Future<ResponseModel> getLeaderBoardRankPositions() async {
var response = await get(Endpoints.getLeaderBoardRankPosition, headers: {
"access-token": GetStorage().read("token"),
});
if (response.body == null &&
response.body.toString().contains("<!DOCTYPE html>")) {
return const ResponseModel(
responseStatus: ResponseStatus.error, data: null);
} else {
Map data = response.body;
bool isAuthenticated = data["success"] ?? false;
if (isAuthenticated) {
return ResponseModel(
responseStatus: ResponseStatus.success,
data: SelfRankPositions.fromJson(data as Map<String, dynamic>),
);
} else {
return const ResponseModel(
responseStatus: ResponseStatus.error,
data: null,
);
}
}
}
setLeaderBoardRankYearlyPositions() async {
var response =
await get(Endpoints.setLeaderBoardRankYealyPosition, headers: {
"access-token": GetStorage().read("token"),
});
}
}