requestRemoteDtoListFromServer method

Future<List<RemoteDto>> requestRemoteDtoListFromServer({
  1. int? waterLineTs,
  2. String? serverDatabase,
  3. String? testPassword,
  4. bool compact = true,
  5. int? limit,
})

Implementation

Future<List<RemoteDto>> requestRemoteDtoListFromServer(
    {int? waterLineTs,
    String? serverDatabase,
    String? testPassword,
    bool compact = true,
    int? limit}) async {
  if (!initialized) throw ArgumentError(AbstractDao.C_MUST_INIT);
  String jsonResponseString;
  UserStoreDto? userStoreDto =
      await userTools.getCurrentUserStoreDto(smd, transaction);
  String? email = userStoreDto!.email;
  UserDto? userDto = await userTools.getCurrentUserDto(smd, transaction);
  String? passKey = userDto!.pass_key;
  signedRequestHelper = SignedRequestHelper2(email!, passKey!);
  Map<String, String> params = Map();
  params["ts"] = TimeUtils.getNowCustomTs().toString();
  params["limit"] =
      limit != null ? limit.toString() : userRowsLimit.toString();

  if (testPassword != null) {
    params["test_pass"] = testPassword;
    if (serverDatabase != null) params["database"] = serverDatabase;
    if (waterLineTs != null) params["water_line"] = waterLineTs.toString();
  }
  if (waterLineTs == null) {
    int wts = await clientWarden.getLatestTs();
    params["water_line"] = wts.toString();
  }
  int? uid = await userTools.getCurrentUserId(smd, transaction);
  params["user_id"] = uid.toString();
  try {
    jsonResponseString = await readClient.getBaseURI(
        UrlTools.C_LATEST_ROWS_URL, signedRequestHelper.sign(params));
  } on TransmitStatusException catch (e) {
    print("WS $e");
    throw TransmitStatusException(e.transmitStatus, cause: e.cause);
  }
  print("url=" + readClient.getURLString());
  print("returned json=" + jsonResponseString);

  List<RemoteDto> list;
  list = JsonRemoteDtoTools.getRemoteDtoListFromJsonString(
      jsonResponseString, smdSys, defaults,
      compact: compact);
  return list;
}