find method

Future<List<LCStatus>> find(
  1. {CachePolicy cachePolicy = CachePolicy.onlyNetwork}
)
override

Implementation

Future<List<LCStatus>> find(
    {CachePolicy cachePolicy = CachePolicy.onlyNetwork}) async {
  LCUser? user = await LCUser.getCurrent();
  if (user == null) {
    throw new ArgumentError.notNull('current user');
  }

  Map<String, dynamic> params = {
    LCStatus.OwnerKey: jsonEncode(_LCEncoder.encode(user)),
    LCStatus.InboxTypeKey: inboxType,
    'where': _buildWhere(),
    'sinceId': sinceId,
    'maxId': maxId,
    'limit': condition.limit
  };
  String? includes = condition._buildIncludes();
  if (includes != null) {
    params['include'] = includes;
  }
  String? keys = condition._buildSelectedKeys();
  if (keys != null) {
    params['keys'] = keys;
  }
  Map response = await LeanCloud._httpClient
      .get('subscribe/statuses', queryParams: params);
  List results = response['results'];
  List<LCStatus> list = [];
  results.forEach((item) {
    _LCObjectData objectData = _LCObjectData.decode(item);
    LCStatus status = new LCStatus();
    status._merge(objectData);
    status.messageId = objectData.customPropertyMap[LCStatus.MessageIdKey];
    status.data = objectData.customPropertyMap;
    status.inboxType = objectData.customPropertyMap[LCStatus.InboxTypeKey];
    list.add(status);
  });
  return list;
}