]> git.cworth.org Git - lmno.games/blob - flempires/lib/WebService.dart
flempires: Create new class WebService.dart
[lmno.games] / flempires / lib / WebService.dart
1 import 'package:http/http.dart' as http;
2 import 'package:http/http.dart';
3
4 class Request<T> {
5   final String url;
6   T Function(Response response) parse;
7   final String type;
8
9   Request({this.url, this.parse, this.type});
10 }
11
12 class WebService {
13   Future<T> fetch<T>(Request<T> request) async {
14     final response = await http.get(request.url);
15
16     if (response.statusCode == 200) {
17       return request.parse(response);
18     } else {
19       throw Exception(
20           'Failed to fetch ' + request.type + ' from url ' + request.url);
21     }
22   }
23 }