]> git.cworth.org Git - lmno.games/blob - flempires/lib/player.dart
STASHING CHANGES TO GET THEM OFF HANDROID
[lmno.games] / flempires / lib / player.dart
1 import 'dart:convert';
2
3 import 'package:flempires/webService.dart';
4 import 'package:http/http.dart' as http;
5
6 class Player {
7   final int id;
8   final String name;
9
10   Player({this.id, this.name});
11
12   factory Player.fromJson(Map<String, dynamic> json) {
13     return Player(
14       id: json['id'],
15       name: json['name'],
16     );
17   }
18
19 //  static Resource<List<NewsArticle>> get all {
20 //
21 //    return Resource(
22 //        url: Constants.HEADLINE_NEWS_URL,
23 //        parse: (response) {
24 //          final result = json.decode(response.body);
25 //          Iterable list = result['articles'];
26 //          return list.map((model) => NewsArticle.fromJson(model)).toList();
27 //        }
28 //    );
29 //
30 //  }
31
32 //  static Request<List<Player>> get all (String code) {
33 //
34 //  }
35
36   static Request<List<Player>> get all {
37     return Request(
38         url: 'https://families.cworth.org/api/players',
39         type: 'Player',
40         parse: (response) {
41           final result = json.decode(response.body);
42           Iterable list = result['players'];
43           return list.map((model) => Player.fromJson(model)).toList();
44         });
45   }
46
47   static Future<Player> fetchFirstPlayer() async {
48     final response = await http.get('https://families.cworth.org/api/players');
49
50     if (response.statusCode == 200) {
51       List<Player> playerList = parsePlayers(response.body);
52       return playerList.elementAt(0);
53     } else {
54       throw Exception('Failed to load player');
55     }
56   }
57
58   static Future<List<Player>> fetchAllPlayers() async {
59     final response = await http.get('https://families.cworth.org/api/players');
60
61     if (response.statusCode == 200) {
62       return parsePlayers(response.body);
63     } else {
64       throw Exception('Failed to load players');
65     }
66   }
67
68   static List<Player> parsePlayers(String responseBody) {
69     final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
70     return parsed.map<Player>((json) => Player.fromJson(json)).toList();
71   }
72 }