|
|
|
|
|
|
|
|
|
|
|
|
|
|
Future<List<ActionType>> getActionTypes() { |
|
|
Future<List<ActionType>> getActionTypes() { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
var op = buildConfigurableCacheOptions( |
|
|
|
|
|
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
|
|
|
|
|
|
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
return client.getActionTypes(options: op); |
|
|
return client.getActionTypes(options: op); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<List<Harvest>> getHarvests() { |
|
|
Future<List<Harvest>> getHarvests() { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
var op = buildConfigurableCacheOptions( |
|
|
|
|
|
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
|
|
|
|
|
|
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
return client.getHarvests(options: op); |
|
|
return client.getHarvests(options: op); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<List<WaterType>> getWaterTypes() { |
|
|
Future<List<WaterType>> getWaterTypes() { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
var op = buildConfigurableCacheOptions( |
|
|
|
|
|
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
|
|
|
|
|
|
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
return client.getWaterTypes(options: op); |
|
|
return client.getWaterTypes(options: op); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return client.getCropDetail(cropId, page: page, size: size); |
|
|
return client.getCropDetail(cropId, page: page, size: size); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<CropPlot> getPlotDetailByCode(String cropCode, {int page, int size}) { |
|
|
|
|
|
|
|
|
Future<CropPlot> getPlotDetailByCode(String cropCode) { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
return client.getCropDetailByCode(cropCode, page: page, size: size); |
|
|
|
|
|
|
|
|
return client.getCropDetailByCode(cropCode); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<List<TbCropDTO>> getPlots({int page, int size, String searchString}) { |
|
|
Future<List<TbCropDTO>> getPlots({int page, int size, String searchString}) { |
|
|
|
|
|
|
|
|
return client.login(UserRequest(username: username, password: password)); |
|
|
return client.login(UserRequest(username: username, password: password)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<PagedResult<T>> getInfinityList<T>(String url, |
|
|
|
|
|
{int page = 0, int size = 20}) async { |
|
|
|
|
|
|
|
|
Future<PagedResult<T>> getInfinityList<T>(String url, {int page = 0, int size = 20}) async { |
|
|
var initUrl = "/api/activities/latest-env-by-activity-type/1/2"; |
|
|
var initUrl = "/api/activities/latest-env-by-activity-type/1/2"; |
|
|
var url = |
|
|
|
|
|
ConstCommon.baseUrl + initUrl + "?page=$page&paged=true&size=$size"; |
|
|
|
|
|
|
|
|
var url = ConstCommon.baseUrl + initUrl + "?page=$page&paged=true&size=$size"; |
|
|
var response = await dio.get(url); |
|
|
var response = await dio.get(url); |
|
|
|
|
|
|
|
|
final value = PagedResult<T>.fromJson(response.data, getInstanceClass()); |
|
|
final value = PagedResult<T>.fromJson(response.data, getInstanceClass()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Future<List<Supply>> getSupplies(String type, {String query = ""}) async { |
|
|
Future<List<Supply>> getSupplies(String type, {String query = ""}) async { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
var op = buildConfigurableCacheOptions( |
|
|
|
|
|
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
|
|
|
|
|
|
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
return client.getSupplies(type, query: query, options: op); |
|
|
return client.getSupplies(type, query: query, options: op); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<List<Device>> getDeviceForActivity() async { |
|
|
Future<List<Device>> getDeviceForActivity() async { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
var op = buildConfigurableCacheOptions( |
|
|
|
|
|
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
|
|
|
|
|
|
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
return client.getDeviceForActivity(options: op); |
|
|
return client.getDeviceForActivity(options: op); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return client.updateNoti(updateNoti); |
|
|
return client.updateNoti(updateNoti); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<NotificationObjectDTO> getNotifications( |
|
|
|
|
|
{int page = 0, int size = 20}) async { |
|
|
|
|
|
var url = ConstCommon.baseUrl + |
|
|
|
|
|
"/api/notifications-current-user?page=$page&size=$size&sort=sendDate,DESC"; |
|
|
|
|
|
|
|
|
Future<NotificationObjectDTO> getNotifications({int page = 0, int size = 20}) async { |
|
|
|
|
|
var url = ConstCommon.baseUrl + "/api/notifications-current-user?page=$page&size=$size&sort=sendDate,DESC"; |
|
|
var response = await dio.get(url); |
|
|
var response = await dio.get(url); |
|
|
|
|
|
|
|
|
final value = NotificationObjectDTO.fromJson(response.data); |
|
|
final value = NotificationObjectDTO.fromJson(response.data); |
|
|
return value; |
|
|
return value; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<List<LocationUnit>> getLocationUnits( |
|
|
|
|
|
{@required LocationType locationType, |
|
|
|
|
|
int filterId, |
|
|
|
|
|
int page = 0, |
|
|
|
|
|
int size = 500, |
|
|
|
|
|
String query = ''}) { |
|
|
|
|
|
|
|
|
Future<List<LocationUnit>> getLocationUnits({@required LocationType locationType, int filterId, int page = 0, int size = 500, String query = ''}) { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
var op = buildConfigurableCacheOptions( |
|
|
|
|
|
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
|
|
|
|
|
|
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
var response; |
|
|
var response; |
|
|
switch (locationType) { |
|
|
switch (locationType) { |
|
|
case LocationType.province: |
|
|
case LocationType.province: |
|
|
response = client.getProvinces(filterId, |
|
|
|
|
|
options: op, page: page, size: size, query: query); |
|
|
|
|
|
|
|
|
response = client.getProvinces(filterId, options: op, page: page, size: size, query: query); |
|
|
break; |
|
|
break; |
|
|
case LocationType.district: |
|
|
case LocationType.district: |
|
|
response = client.getDistricts(filterId, |
|
|
|
|
|
options: op, page: page, size: size, query: query); |
|
|
|
|
|
|
|
|
response = client.getDistricts(filterId, options: op, page: page, size: size, query: query); |
|
|
break; |
|
|
break; |
|
|
case LocationType.ward: |
|
|
case LocationType.ward: |
|
|
response = client.getWards(filterId, |
|
|
|
|
|
options: op, page: page, size: size, query: query); |
|
|
|
|
|
|
|
|
response = client.getWards(filterId, options: op, page: page, size: size, query: query); |
|
|
break; |
|
|
break; |
|
|
default: |
|
|
default: |
|
|
response = client.getCountries(query: query); |
|
|
response = client.getCountries(query: query); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//Action |
|
|
//Action |
|
|
Future<void> createAction( |
|
|
|
|
|
Function(dynamic) onSuccess, Function(dynamic) onError, |
|
|
|
|
|
{String apiAddAction, |
|
|
|
|
|
String paramActivity, |
|
|
|
|
|
String activityAction, |
|
|
|
|
|
List<String> filePaths}) async { |
|
|
|
|
|
|
|
|
Future<void> createAction(Function(dynamic) onSuccess, Function(dynamic) onError, |
|
|
|
|
|
{String apiAddAction, String paramActivity, String activityAction, List<String> filePaths}) async { |
|
|
var formData = FormData(); |
|
|
var formData = FormData(); |
|
|
filePaths.forEach((f) { |
|
|
filePaths.forEach((f) { |
|
|
formData.files.add(MapEntry("images", MultipartFile.fromFileSync(f))); |
|
|
formData.files.add(MapEntry("images", MultipartFile.fromFileSync(f))); |
|
|
}); |
|
|
}); |
|
|
formData.fields.add(MapEntry(paramActivity, activityAction)); |
|
|
formData.fields.add(MapEntry(paramActivity, activityAction)); |
|
|
try { |
|
|
try { |
|
|
await dio |
|
|
|
|
|
.post("${ConstCommon.baseUrl}/$apiAddAction", data: formData) |
|
|
|
|
|
.then((value) { |
|
|
|
|
|
|
|
|
await dio.post("${ConstCommon.baseUrl}/$apiAddAction", data: formData).then((value) { |
|
|
onSuccess(value.data); |
|
|
onSuccess(value.data); |
|
|
}); |
|
|
}); |
|
|
} on DioError catch (e) { |
|
|
} on DioError catch (e) { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<void> updateAction( |
|
|
|
|
|
Function(dynamic) onSuccess, Function(dynamic) onError, |
|
|
|
|
|
{String apiUpdateAction, |
|
|
|
|
|
String paramActivity, |
|
|
|
|
|
String activityAction, |
|
|
|
|
|
List<String> filePaths}) async { |
|
|
|
|
|
|
|
|
Future<void> updateAction(Function(dynamic) onSuccess, Function(dynamic) onError, |
|
|
|
|
|
{String apiUpdateAction, String paramActivity, String activityAction, List<String> filePaths}) async { |
|
|
var formData = FormData(); |
|
|
var formData = FormData(); |
|
|
filePaths.forEach((f) { |
|
|
filePaths.forEach((f) { |
|
|
formData.files.add(MapEntry("images", MultipartFile.fromFileSync(f))); |
|
|
formData.files.add(MapEntry("images", MultipartFile.fromFileSync(f))); |
|
|
}); |
|
|
}); |
|
|
formData.fields.add(MapEntry(paramActivity, activityAction)); |
|
|
formData.fields.add(MapEntry(paramActivity, activityAction)); |
|
|
try { |
|
|
try { |
|
|
await dio |
|
|
|
|
|
.post("${ConstCommon.baseUrl}/$apiUpdateAction", data: formData) |
|
|
|
|
|
.then((value) { |
|
|
|
|
|
|
|
|
await dio.post("${ConstCommon.baseUrl}/$apiUpdateAction", data: formData).then((value) { |
|
|
onSuccess(value.data); |
|
|
onSuccess(value.data); |
|
|
}); |
|
|
}); |
|
|
} on DioError catch (e) { |
|
|
} on DioError catch (e) { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//Environment Parameter |
|
|
//Environment Parameter |
|
|
Future<List<EnvironmentParameter>> getEnvironmentParameters( |
|
|
|
|
|
{@required int cropId, int page, int size}) { |
|
|
|
|
|
|
|
|
Future<List<EnvironmentParameter>> getEnvironmentParameters({@required int cropId, int page, int size}) { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
return client.getEnvironmentParameters(cropId, page: page, size: size); |
|
|
return client.getEnvironmentParameters(cropId, page: page, size: size); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//NEW IMPLEMENT |
|
|
//NEW IMPLEMENT |
|
|
Future<void> allActionTypes(int cropTypeId, |
|
|
|
|
|
Function(List<ActionType>) onSuccess, Function(dynamic) onError) async { |
|
|
|
|
|
|
|
|
Future<void> allActionTypes(int cropTypeId, Function(List<ActionType>) onSuccess, Function(dynamic) onError) async { |
|
|
try { |
|
|
try { |
|
|
var url = |
|
|
|
|
|
'${ConstCommon.baseUrl}/api/listActivityTypesCulture/$cropTypeId'; |
|
|
|
|
|
|
|
|
var url = '${ConstCommon.baseUrl}/api/listActivityTypesCulture/$cropTypeId'; |
|
|
|
|
|
|
|
|
final Response<List<dynamic>> _result = await dio.get(url); |
|
|
final Response<List<dynamic>> _result = await dio.get(url); |
|
|
var value = _result.data |
|
|
|
|
|
.map((dynamic i) => ActionType.fromJson(i as Map<String, dynamic>)) |
|
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
var value = _result.data.map((dynamic i) => ActionType.fromJson(i as Map<String, dynamic>)).toList(); |
|
|
onSuccess(value); |
|
|
onSuccess(value); |
|
|
} on DioError catch (e) { |
|
|
} on DioError catch (e) { |
|
|
onError(e); |
|
|
onError(e); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Future<ActionUIForm> getActionUIForm({@required int idAction}) { |
|
|
Future<ActionUIForm> getActionUIForm({@required int idAction}) { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
var op = buildConfigurableCacheOptions( |
|
|
|
|
|
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
|
|
|
|
|
|
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache)); |
|
|
return client.getActionUIForm(idAction, op); |
|
|
return client.getActionUIForm(idAction, op); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<List<CommonData>> getCommonData( |
|
|
|
|
|
{String tableSupply, String condition}) async { |
|
|
|
|
|
var url = |
|
|
|
|
|
'${ConstCommon.baseUrl}/api/get-data-from-table-common?tableName=$tableSupply&condition=$condition'; |
|
|
|
|
|
|
|
|
Future<List<CommonData>> getCommonData({String tableSupply, String condition}) async { |
|
|
|
|
|
var url = '${ConstCommon.baseUrl}/api/get-data-from-table-common?tableName=$tableSupply&condition=$condition'; |
|
|
|
|
|
|
|
|
final Response<List<dynamic>> _result = await dio.get(url); |
|
|
final Response<List<dynamic>> _result = await dio.get(url); |
|
|
var value = _result.data |
|
|
|
|
|
.map((dynamic i) => CommonData.fromJson(i as Map<String, dynamic>)) |
|
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
var value = _result.data.map((dynamic i) => CommonData.fromJson(i as Map<String, dynamic>)).toList(); |
|
|
return value; |
|
|
return value; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<void> createActionCommon( |
|
|
|
|
|
Function(dynamic) onSuccess, Function(dynamic) onError, |
|
|
|
|
|
{@required String activityType, |
|
|
|
|
|
@required String activityData, |
|
|
|
|
|
List<String> filePaths}) async { |
|
|
|
|
|
|
|
|
Future<void> createActionCommon(Function(dynamic) onSuccess, Function(dynamic) onError, |
|
|
|
|
|
{@required String activityType, @required String activityData, List<String> filePaths}) async { |
|
|
var formData = FormData(); |
|
|
var formData = FormData(); |
|
|
filePaths.forEach((f) { |
|
|
filePaths.forEach((f) { |
|
|
formData.files.add(MapEntry('images', MultipartFile.fromFileSync(f))); |
|
|
formData.files.add(MapEntry('images', MultipartFile.fromFileSync(f))); |
|
|
}); |
|
|
}); |
|
|
formData.fields.add(MapEntry('tbCommonActivityDTO', activityData)); |
|
|
formData.fields.add(MapEntry('tbCommonActivityDTO', activityData)); |
|
|
try { |
|
|
try { |
|
|
await dio |
|
|
|
|
|
.post( |
|
|
|
|
|
"${ConstCommon.baseUrl}/api/create-common-activity/$activityType", |
|
|
|
|
|
data: formData) |
|
|
|
|
|
.then((value) { |
|
|
|
|
|
|
|
|
await dio.post("${ConstCommon.baseUrl}/api/create-common-activity/$activityType", data: formData).then((value) { |
|
|
onSuccess(value.data); |
|
|
onSuccess(value.data); |
|
|
}); |
|
|
}); |
|
|
} on DioError catch (e) { |
|
|
} on DioError catch (e) { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<void> updateActionCommon( |
|
|
|
|
|
Function(dynamic) onSuccess, Function(dynamic) onError, |
|
|
|
|
|
{@required String activityType, |
|
|
|
|
|
@required String activityData, |
|
|
|
|
|
List<String> filePaths}) async { |
|
|
|
|
|
|
|
|
Future<void> updateActionCommon(Function(dynamic) onSuccess, Function(dynamic) onError, |
|
|
|
|
|
{@required String activityType, @required String activityData, List<String> filePaths}) async { |
|
|
var formData = FormData(); |
|
|
var formData = FormData(); |
|
|
filePaths.forEach((f) { |
|
|
filePaths.forEach((f) { |
|
|
formData.files.add(MapEntry('images', MultipartFile.fromFileSync(f))); |
|
|
formData.files.add(MapEntry('images', MultipartFile.fromFileSync(f))); |
|
|
}); |
|
|
}); |
|
|
formData.fields.add(MapEntry('tbCommonActivityDTO', activityData)); |
|
|
formData.fields.add(MapEntry('tbCommonActivityDTO', activityData)); |
|
|
try { |
|
|
try { |
|
|
await dio |
|
|
|
|
|
.post( |
|
|
|
|
|
"${ConstCommon.baseUrl}/api/update-common-activity/$activityType", |
|
|
|
|
|
data: formData) |
|
|
|
|
|
.then((value) { |
|
|
|
|
|
|
|
|
await dio.post("${ConstCommon.baseUrl}/api/update-common-activity/$activityType", data: formData).then((value) { |
|
|
onSuccess(value.data); |
|
|
onSuccess(value.data); |
|
|
}); |
|
|
}); |
|
|
} on DioError catch (e) { |
|
|
} on DioError catch (e) { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Future<RequestActivity> detailCommonAction( |
|
|
|
|
|
{@required int activityId, @required String activityType}) async { |
|
|
|
|
|
|
|
|
Future<RequestActivity> detailCommonAction({@required int activityId, @required String activityType}) async { |
|
|
final client = RestClient(dio); |
|
|
final client = RestClient(dio); |
|
|
return client.getDetailActivityCommon( |
|
|
|
|
|
actionType: activityType, activityId: activityId); |
|
|
|
|
|
|
|
|
return client.getDetailActivityCommon(actionType: activityType, activityId: activityId); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |