sendRemoteFieldDtoListToServer method
Implementation
Future<void> sendRemoteFieldDtoListToServer(List<RemoteDto> remoteDtoList,
{String? serverDatabase, String? testPassword}) async {
if (!initialized) throw ArgumentError(AbstractDao.C_MUST_INIT);
// Convert RemoteDto list into Json
Map<String, String> params = Map();
Map<String, dynamic> tableData;
Iterator<RemoteDto> iter = remoteDtoList.iterator;
RemoteDto remoteDto;
RemoteWaterLineFieldDto remoteWaterLineFieldDto;
while (iter.moveNext()) {
List<Map<String, dynamic>> tablesArray = [];
remoteDto = iter.current;
remoteWaterLineFieldDto = remoteDto as RemoteWaterLineFieldDto;
tableData = JsonRemoteDtoConversion.getJsonFromWaterLineFieldDto(
remoteWaterLineFieldDto, remoteDto.waterLineDto!);
tablesArray.add(tableData);
// Now send one record at a time
UserStoreDto? userStoreDto = await userTools.getCurrentUserStoreDto(smd, transaction);
UserDto? userDto = await userTools.getCurrentUserDto(smd, transaction);
signedRequestHelper = SignedRequestHelper2(
userStoreDto!.email!,
userDto!.pass_key!);
params["ts"] = TimeUtils.getNowCustomTs().toString();
if (serverDatabase != null) params["database"] = serverDatabase;
if (testPassword != null) params["test_pass"] = testPassword;
int? uid = await userTools.getCurrentUserId(smd, transaction);
params["user_id"] = uid.toString();
String jsonResponseString;
try {
jsonResponseString = await writeClient.postBaseURI(
jsonEncode(tablesArray),
UrlTools.C_WATERLINE_FIELDS_POST_URL,
signedRequestHelper.sign(params));
} on TransmitStatusException catch (e) {
print("WS $e");
throw TransmitStatusException(e.transmitStatus,
cause: e.cause, sourceName: "Send Field List");
}
print("js=" + jsonResponseString);
List<RemoteDto> returnedRemoteFieldDtoList =
jsonTools.processRemoteWaterLineFieldDtoListJson(jsonResponseString);
updateOriginalRecordsUsingRemoteFieldDtoList(returnedRemoteFieldDtoList);
print("rl=$returnedRemoteFieldDtoList");
}
}