supporters
This commit is contained in:
parent
638b8c9413
commit
d72bf84a36
@ -3,6 +3,7 @@ import 'dart:convert';
|
|||||||
import 'package:filcnaplo/models/config.dart';
|
import 'package:filcnaplo/models/config.dart';
|
||||||
import 'package:filcnaplo/models/news.dart';
|
import 'package:filcnaplo/models/news.dart';
|
||||||
import 'package:filcnaplo/models/release.dart';
|
import 'package:filcnaplo/models/release.dart';
|
||||||
|
import 'package:filcnaplo/models/supporter.dart';
|
||||||
import 'package:filcnaplo_kreta_api/models/school.dart';
|
import 'package:filcnaplo_kreta_api/models/school.dart';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
@ -10,6 +11,7 @@ class FilcAPI {
|
|||||||
static const SCHOOL_LIST = "https://filcnaplo.hu/v2/school_list.json";
|
static const SCHOOL_LIST = "https://filcnaplo.hu/v2/school_list.json";
|
||||||
static const CONFIG = "https://filcnaplo.hu/v2/config.json";
|
static const CONFIG = "https://filcnaplo.hu/v2/config.json";
|
||||||
static const NEWS = "https://filcnaplo.hu/v2/news.json";
|
static const NEWS = "https://filcnaplo.hu/v2/news.json";
|
||||||
|
static const SUPPORTERS = "https://filcnaplo.hu/v2/supporters.json";
|
||||||
static const REPO = "filc/naplo";
|
static const REPO = "filc/naplo";
|
||||||
static const RELEASES = "https://api.github.com/repos/$REPO/releases";
|
static const RELEASES = "https://api.github.com/repos/$REPO/releases";
|
||||||
|
|
||||||
@ -55,6 +57,20 @@ class FilcAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<Supporters?> getSupporters() async {
|
||||||
|
try {
|
||||||
|
http.Response res = await http.get(Uri.parse(SUPPORTERS));
|
||||||
|
|
||||||
|
if (res.statusCode == 200) {
|
||||||
|
return Supporters.fromJson(jsonDecode(res.body));
|
||||||
|
} else {
|
||||||
|
throw "HTTP ${res.statusCode}: ${res.body}";
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
print("ERROR: FilcAPI.getSupporters: $error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static Future<List<Release>?> getReleases() async {
|
static Future<List<Release>?> getReleases() async {
|
||||||
try {
|
try {
|
||||||
http.Response res = await http.get(Uri.parse(RELEASES));
|
http.Response res = await http.get(Uri.parse(RELEASES));
|
||||||
|
38
filcnaplo/lib/models/supporter.dart
Normal file
38
filcnaplo/lib/models/supporter.dart
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
class Supporter {
|
||||||
|
String name;
|
||||||
|
String amount;
|
||||||
|
String platform;
|
||||||
|
|
||||||
|
Supporter(this.name, this.amount, this.platform);
|
||||||
|
|
||||||
|
factory Supporter.fromJson(Map json) {
|
||||||
|
return Supporter(
|
||||||
|
json["name"] ?? "",
|
||||||
|
json["amount"] ?? "",
|
||||||
|
json["platform"] ?? "",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Supporters {
|
||||||
|
List<Supporter> top;
|
||||||
|
List<Supporter> all;
|
||||||
|
int progress;
|
||||||
|
int max;
|
||||||
|
|
||||||
|
Supporters({
|
||||||
|
required this.top,
|
||||||
|
required this.all,
|
||||||
|
required this.progress,
|
||||||
|
required this.max,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory Supporters.fromJson(Map json) {
|
||||||
|
return Supporters(
|
||||||
|
max: (json["progress"] ?? {})["max"] ?? 1,
|
||||||
|
progress: (json["progress"] ?? {})["value"] ?? 0,
|
||||||
|
all: ((json["all"] ?? []) as List).cast<Map>().map((e) => Supporter.fromJson(e)).toList(),
|
||||||
|
top: ((json["top"] ?? []) as List).cast<Map>().map((e) => Supporter.fromJson(e)).toList(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user