requestUpdatedWaterLineFieldsFromServer method

Future<List<RemoteDto>> requestUpdatedWaterLineFieldsFromServer(
  1. ChangeSuperType changeSuperType, {
  2. int? remoteTs,
  3. String? serverDatabase,
  4. String? testPassword,
})

Implementation

Future<List<RemoteDto>> requestUpdatedWaterLineFieldsFromServer(
    ChangeSuperType changeSuperType,
    {int? remoteTs,
    String? serverDatabase,
    String? testPassword}) async {
  if (!initialized) throw ArgumentError(AbstractDao.C_MUST_INIT);
  if (changeSuperType == null)
    throw NullPointerException("ChangeSuperType must not be null");
  String jsonResponseString;
  UserStoreDto? userStoreDto = await userTools.getCurrentUserStoreDto(smd, transaction);
  UserDto? userDto = await userTools.getCurrentUserDto(smd, transaction);
  signedRequestHelper = SignedRequestHelper2(
      userStoreDto!.email!,
      userDto!.pass_key!);
  Map<String, String> params = Map();
  params["ts"] = TimeUtils.getNowCustomTs().toString();
  params["limit"] = userRowsLimit.toString();

  if (testPassword != null) {
    params["test_pass"] = testPassword;
    if (serverDatabase != null) params["database"] = serverDatabase;
    if (remoteTs != null) params["remote_ts"] = remoteTs.toString();
  }
  if (remoteTs == null)
    params["remote_ts"] =
        (await waterLineField.getMaxTs(changeSuperType)).toString();
  params["change_super_type"] =
      WaterLineField.getChangeSuperTypeValue(changeSuperType).toString();
  params["user_id"] =
      (await userTools.getCurrentUserId(smd, transaction)).toString();
  try {
    jsonResponseString = await readClient
        .getBaseURI(UrlTools.C_LATEST_FIELDS_URL, signedRequestHelper.sign(params));
  } on TransmitStatusException catch (e) {
    print("WS $e");
    throw TransmitStatusException(e.transmitStatus,
        cause: e.cause, sourceName: "Request Fields");
  }
  print("url=" + readClient.getURLString());
  print("returned json=" + jsonResponseString);

  List<RemoteDto> list;
  list = jsonTools.processRemoteWaterLineFieldDtoListJson(jsonResponseString);
  return list;
}