You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.8KB

  1. import 'package:farm_tpf/data/api/dio_provider.dart';
  2. import 'package:farm_tpf/data/api/rest_client.dart';
  3. import 'package:farm_tpf/models/PagedResult.dart';
  4. import 'package:farm_tpf/models/Plot.dart';
  5. import 'package:farm_tpf/models/Supply.dart';
  6. import 'package:farm_tpf/models/index.dart';
  7. import 'package:farm_tpf/models/user.dart';
  8. import 'package:farm_tpf/models/user_request.dart';
  9. import 'package:farm_tpf/utils/const_common.dart';
  10. class Repository {
  11. final dio = DioProvider.instance();
  12. Future<List<ActionType>> getActionTypes() {
  13. final client = RestClient(dio);
  14. return client.getActionTypes();
  15. }
  16. Future<Crop> getPlotDetail(int cropId, {int page, int size}) {
  17. final client = RestClient(dio);
  18. return client.getCropDetail(cropId, page: page, size: size);
  19. }
  20. Future<List<Plot>> getPlots({int page, int size, String searchString}) {
  21. final client = RestClient(dio);
  22. return client.getPlots(page: page, size: size, query: searchString);
  23. }
  24. Future<User> signInWithCredentials(String username, String password) {
  25. final client = RestClient(dio);
  26. return client.login(UserRequest(username: username, password: password));
  27. }
  28. Future<PagedResult<T>> getInfinityList<T>(String url,
  29. {int page = 0, int size = 20}) async {
  30. var initUrl = "/api/activities/latest-env-by-activity-type/1/2";
  31. var url =
  32. ConstCommon.baseUrl + initUrl + "?page=$page&paged=true&size=$size";
  33. var response = await dio.get(url);
  34. final value = PagedResult<T>.fromJson(response.data, getInstanceClass());
  35. return value;
  36. }
  37. Future<List<Supply>> getSupplies(String type) async {
  38. final client = RestClient(dio);
  39. return client.getSupplies(type);
  40. }
  41. Object getInstanceClass() {
  42. var instanceClass;
  43. if (1 == 1) {
  44. instanceClass = new Plot();
  45. }
  46. return instanceClass;
  47. }
  48. }