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.

144 lines
5.3KB

  1. import 'package:dio/dio.dart';
  2. import 'package:farm_tpf/custom_model/ActionType.dart';
  3. import 'package:farm_tpf/custom_model/CropPlot.dart';
  4. import 'package:farm_tpf/custom_model/Device.dart';
  5. import 'package:farm_tpf/custom_model/EnvironmentParameter.dart';
  6. import 'package:farm_tpf/custom_model/Harvest.dart';
  7. import 'package:farm_tpf/custom_model/LocationUnit.dart';
  8. import 'package:farm_tpf/custom_model/Supply.dart';
  9. import 'package:farm_tpf/custom_model/TbCropDTO.dart';
  10. import 'package:farm_tpf/custom_model/UpdateNoti.dart';
  11. import 'package:farm_tpf/custom_model/WaterType.dart';
  12. import 'package:farm_tpf/custom_model/account.dart';
  13. import 'package:farm_tpf/custom_model/action_form/ActionUIForm.dart';
  14. import 'package:farm_tpf/custom_model/action_form/RequestActivity.dart';
  15. import 'package:farm_tpf/custom_model/password.dart';
  16. import 'package:farm_tpf/custom_model/user.dart';
  17. import 'package:farm_tpf/custom_model/user_request.dart';
  18. import 'package:farm_tpf/utils/const_common.dart';
  19. import 'package:flutter/material.dart';
  20. import 'package:retrofit/retrofit.dart';
  21. part 'rest_client.g.dart';
  22. @RestApi(baseUrl: ConstCommon.baseUrl)
  23. abstract class RestClient {
  24. factory RestClient(Dio dio, {String baseUrl}) = _RestClient;
  25. @POST("/api/authenticate")
  26. Future<User> login(@Body() UserRequest userRequest);
  27. @GET("/api/account")
  28. Future<Account> getMe();
  29. @POST("/api/account/reset-password/init")
  30. Future<void> forgotPassword(@Body() String email);
  31. @POST("/api/account/reset-password/finish")
  32. Future<void> resetPassword(@Body() Password password);
  33. @POST("/api/account/change-password")
  34. Future<void> changePassword(@Body() Password password);
  35. @PUT("/api/update-my-profile")
  36. Future<Account> updateProfile(@Body() Account account);
  37. @GET("/api/list-supplies-in-warehouses/{type}?q={query}")
  38. Future<List<Supply>> getSupplies(@Path() String type,
  39. {@DioOptions() Options options, @Path() String query = ""});
  40. //Common
  41. @PUT("/api/update-fcmToken")
  42. Future<void> updateFcmToken(@Body() String token);
  43. @PUT("/api/delete-fcmToken")
  44. Future<void> deleteFcmToken(@Body() String token);
  45. //Plot
  46. @GET(
  47. "/api/_search/tb-crops?page={page}&size={size}&sort=id,asc&query={query}")
  48. Future<List<TbCropDTO>> getPlots(
  49. {@Path() int page = 0, @Path() int size = 20, @Path() String query = ""});
  50. //TODO: check clean code
  51. @GET("/api/listActivityTypesOther")
  52. Future<List<ActionType>> getActionTypes({@DioOptions() Options options});
  53. @GET("/api/water-types")
  54. Future<List<WaterType>> getWaterTypes({@DioOptions() Options options});
  55. @GET("/api/tb-harvests")
  56. Future<List<Harvest>> getHarvests({@DioOptions() Options options});
  57. @GET("/api/listDeviceForActivity")
  58. Future<List<Device>> getDeviceForActivity({@DioOptions() Options options});
  59. @PUT("/api/notifications/update-all")
  60. Future<void> updateAllNotification(@Body() String status);
  61. @PUT("/api/notifications/update")
  62. Future<void> updateNoti(@Body() UpdateNoti updateNoti);
  63. @GET("/api/tb-countries?page={page}&size={size}&query={query}&&sort=name,ASC")
  64. Future<List<LocationUnit>> getCountries(
  65. {@Path() int page = 0,
  66. @Path() int size = 400,
  67. @Path() String query = '',
  68. @DioOptions() Options options});
  69. @GET(
  70. "/api/tb-cities-by-country/{countryId}?page={page}&size={size}&query={query}&&sort=name,ASC")
  71. Future<List<LocationUnit>> getProvinces(@Path() int countryId,
  72. {@Path() int page = 0,
  73. @Path() int size = 20,
  74. @Path() String query = '',
  75. @DioOptions() Options options});
  76. @GET(
  77. "/api/tb-districts-by-city/{provinceId}?page={page}&size={size}&query={query}&&sort=name,ASC")
  78. Future<List<LocationUnit>> getDistricts(@Path() int provinceId,
  79. {@Path() int page = 0,
  80. @Path() int size = 20,
  81. @Path() String query = '',
  82. @DioOptions() Options options});
  83. @GET(
  84. "/api/tb-wards-by-district/{districtId}?page={page}&size={size}&query={query}&&sort=name,ASC")
  85. Future<List<LocationUnit>> getWards(@Path() int districtId,
  86. {@Path() int page = 0,
  87. @Path() int size = 20,
  88. @Path() String query = '',
  89. @DioOptions() Options options});
  90. //Crop
  91. @GET(
  92. "/api/tb-crops-detail-for-app/{cropId}?page={page}&size={size}&sort=executeDate,DESC")
  93. Future<CropPlot> getCropDetail(@Path() int cropId,
  94. {@Path() int page = 0, @Path() int size = 20});
  95. @GET(
  96. "/api/tb-crops-scan-qrCode/{cropCode}?page={page}&size={size}&sort=executeDate,DESC")
  97. Future<CropPlot> getCropDetailByCode(@Path() String cropCode,
  98. {@Path() int page = 0, @Path() int size = 20});
  99. @PUT("/api/tb-crops")
  100. Future<void> updateCrop(@Body() TbCropDTO crop);
  101. //Device
  102. @GET("/api/listDeviceOfUserCustomers?query={query}")
  103. Future<List<Device>> getDevices({@Path() String query});
  104. //Get environment parameter
  105. @GET("/api/list-environment-updates-display/{cropId}?page={page}&size={size}")
  106. Future<List<EnvironmentParameter>> getEnvironmentParameters(
  107. @Path() int cropId,
  108. {@Path() int page = 0,
  109. @Path() int size = 20});
  110. //NEW Activity implement
  111. @GET('/api/display-object-param-dynamic-form/{idAction}')
  112. Future<ActionUIForm> getActionUIForm(
  113. @Path() idAction, @DioOptions() Options options);
  114. @GET('/api/get-detail-common-activity/{actionType}/{activityId}')
  115. Future<RequestActivity> getDetailActivityCommon(
  116. {@required @Path() String actionType, @required @Path() int activityId});
  117. }