]> git.cworth.org Git - lmno.games/blob - flempires/lib/player.dart
Rename flutterempires to flempires
[lmno.games] / flempires / lib / player.dart
1 import 'dart:convert';
2
3 import 'package:http/http.dart' as http;
4
5 class Player {
6   final int id;
7   final String name;
8
9   Player({this.id, this.name});
10
11   factory Player.fromJson(Map<String, dynamic> json) {
12     return Player(
13       id: json['id'],
14       name: json['name'],
15     );
16   }
17
18   static Future<Player> fetchFirstPlayer() async {
19     final response = await http.get('https://families.cworth.org/api/players');
20
21     if (response.statusCode == 200) {
22       List<Player> playerList = parsePlayers(response.body);
23       return playerList.elementAt(0);
24     } else {
25       throw Exception('Failed to load player');
26     }
27   }
28
29   static Future<List<Player>> fetchAllPlayers() async {
30     final response = await http.get('https://families.cworth.org/api/players');
31
32     if (response.statusCode == 200) {
33       return parsePlayers(response.body);
34     } else {
35       throw Exception('Failed to load players');
36     }
37   }
38
39   static List<Player> parsePlayers(String responseBody) {
40     final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
41     return parsed.map<Player>((json) => Player.fromJson(json)).toList();
42   }
43 }