import 'package:farm_tpf/data/api/dio_provider.dart'; import 'package:farm_tpf/data/api/rest_client.dart'; import 'package:farm_tpf/models/PagedResult.dart'; import 'package:farm_tpf/models/Plot.dart'; import 'package:farm_tpf/models/Supply.dart'; import 'package:farm_tpf/models/index.dart'; import 'package:farm_tpf/models/user.dart'; import 'package:farm_tpf/models/user_request.dart'; import 'package:farm_tpf/utils/const_common.dart'; class Repository { final dio = DioProvider.instance(); Future> getPlots({int page, int size}) { final client = RestClient(dio); return client.getPlots(page: page, size: size); } Future signInWithCredentials(String username, String password) { final client = RestClient(dio); return client.login(UserRequest(username: username, password: password)); } Future> getInfinityList(String url, {int page = 0, int size = 20}) async { var initUrl = "/api/activities/latest-env-by-activity-type/1/2"; var url = ConstCommon.baseUrl + initUrl + "?page=$page&paged=true&size=$size"; var response = await dio.get(url); final value = PagedResult.fromJson(response.data, getInstanceClass()); return value; } Future> getSupplies(String type) async { final client = RestClient(dio); return client.getSupplies(type); } Object getInstanceClass() { var instanceClass; if (1 == 1) { instanceClass = new Plot(); } return instanceClass; } }