getSessions method

  1. @override
Future<DataPage<SessionV1>> getSessions(
  1. String? correlationId,
  2. FilterParams filter,
  3. PagingParams paging
)
override

Gets a page of sessions retrieved by a given filter.

  • correlationId (optional) transaction id to trace execution through call chain.
  • filter (optional) a filter function to filter items
  • paging (optional) paging parameters Return Future that receives a data page Throws error.

Implementation

@override
Future<DataPage<SessionV1>> getSessions(
    String? correlationId, FilterParams filter, PagingParams paging) async {
  var filterDefinition = _composeFilter(filter);
  var sessions = _sessions.where(filterDefinition).toList();

  var skip = paging.getSkip(-1);
  var take = paging.getTake(_maxPageSize);

  var total = 0;
  if (paging.total) {
    total = sessions.length;
  }

  if (skip > 0) {
    sessions = sessions.length > skip ? sessions.sublist(skip) : sessions;
  }

  sessions = sessions.length > take ? sessions.sublist(0, take) : sessions;

  return DataPage(sessions, total);
}