minecraft-server-installer/lib/vanilla/framework/api/vanilla_api_service_impl.dart

24 lines
900 B
Dart

import 'dart:async';
import 'package:http/http.dart' as http;
import 'package:minecraft_server_installer/main/constants.dart';
import 'package:minecraft_server_installer/vanilla/adapter/gateway/vanilla_api_service.dart';
import 'package:minecraft_server_installer/vanilla/domain/entity/game_version.dart';
class VanillaApiServiceImpl implements VanillaApiService {
@override
Future<List<GameVersion>> fetchGameVersionList() async {
final sourceUrl = Uri.parse(Constants.gameVersionListUrl);
final response = await http.get(sourceUrl);
final rawGameVersionList = response.body.split('\n');
final gameVersionList =
rawGameVersionList.map((line) => line.split(' ')).where((parts) => parts.length == 2).map((parts) {
final [name, url] = parts;
return GameVersion(name: name, url: Uri.parse(url));
}).toList();
return gameVersionList;
}
}