getAllMatches method
Implementation
Future<List<SoccerMatch>> getAllMatches(
Map<String, dynamic> queryMatches) async {
var body;
String tempMatches = category.toString() +
"_" +
queryMatches['date'].toString() +
'matches.json';
var tempDir = await getApplicationDocumentsDirectory();
File fileMatches = File(tempDir.path + "/football" + tempMatches);
try {
Uri uri = Uri.https(
'elastad.com/web/api', '/football/$category.php', queryMatches);
Response res = await get(uri);
if (res.body.isNotEmpty && res.body[0].isNotEmpty) {
if (res.statusCode == 200) {
fileMatches.writeAsStringSync(res.body,
flush: true, mode: FileMode.write);
body = jsonDecode(res.body);
List<dynamic> matchesList = body['response'];
List<SoccerMatch> matches = matchesList
.map((dynamic item) => SoccerMatch.fromJson(item))
.toList();
return matches;
} else {
if (fileMatches.existsSync()) {
final data = fileMatches.readAsStringSync();
body = jsonDecode(data);
List<dynamic> matchesList = body['response'];
List<SoccerMatch> matches = matchesList
.map((dynamic item) => SoccerMatch.fromJson(item))
.toList();
return matches;
} else {
Uri uri = Uri.https(
'btcdoller.co', '/football/$category.php', queryMatches);
Response res = await get(uri);
if (res.statusCode == 200) {
fileMatches.writeAsStringSync(res.body,
flush: true, mode: FileMode.write);
body = jsonDecode(res.body);
List<dynamic> matchesList = body['response'];
List<SoccerMatch> matches = matchesList
.map((dynamic item) => SoccerMatch.fromJson(item))
.toList();
return matches;
} else {
List<SoccerMatch> mat = [];
return mat;
}
}
}
} else {
if (fileMatches.existsSync()) {
final data = fileMatches.readAsStringSync();
body = jsonDecode(data);
List<dynamic> matchesList = body['response'];
List<SoccerMatch> matches = matchesList
.map((dynamic item) => SoccerMatch.fromJson(item))
.toList();
return matches;
} else {
Uri uri = Uri.https(
'btcdoller.co', '/football/$category.php', queryMatches);
Response res = await get(uri);
if (res.statusCode == 200) {
fileMatches.writeAsStringSync(res.body,
flush: true, mode: FileMode.write);
body = jsonDecode(res.body);
List<dynamic> matchesList = body['response'];
List<SoccerMatch> matches = matchesList
.map((dynamic item) => SoccerMatch.fromJson(item))
.toList();
return matches;
} else {
List<SoccerMatch> mat = [];
return mat;
}
}
}
} on SocketException catch (_) {
if (fileMatches.existsSync()) {
final data = fileMatches.readAsStringSync();
body = jsonDecode(data);
List<dynamic> matchesList = body['response'];
List<SoccerMatch> matches = matchesList
.map((dynamic item) => SoccerMatch.fromJson(item))
.toList();
return matches;
} else {
Uri uri =
Uri.https('btcdoller.co', '/football/$category.php', queryMatches);
Response res = await get(uri);
if (res.statusCode == 200) {
fileMatches.writeAsStringSync(res.body,
flush: true, mode: FileMode.write);
body = jsonDecode(res.body);
List<dynamic> matchesList = body['response'];
List<SoccerMatch> matches = matchesList
.map((dynamic item) => SoccerMatch.fromJson(item))
.toList();
return matches;
} else {
List<SoccerMatch> mat = [];
return mat;
}
}
}
}