import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:survive_app/data/endpoint.dart'; import 'package:survive_app/data/wikipedia/model.dart'; abstract class IWikipediaRepository { Future downloadArticles(); Future> queryArticles(WikiArticleQueryModel data); } class WikipediaRepository implements IWikipediaRepository { @override Future downloadArticles() async { final url = Uri.parse(WikipediaEndpoints.downloadArticles); try { final res = await http.get(url); if (res.statusCode != 200) { return Future.value(); } } catch (e) { return Future.value(); } } @override Future> queryArticles( WikiArticleQueryModel data, ) async { final url = Uri.parse(WikipediaEndpoints.getAllArticles(data.title)); List articles = []; try { final res = await http.get(url); final data = jsonDecode(res.body) as List>; for (final articleMap in data) { final a = WikiArticleModel.fromMap(articleMap); articles.add(a); } } catch (e) { return articles; } return articles; } }