create method

PaginationStoreFlowable<DATA> create(
  1. PARAM param
)

Implementation

PaginationStoreFlowable<DATA> create(final PARAM param) {
  return StoreFlowableImpl(
    param: param,
    flowableDataStateManager: getFlowableDataStateManager(),
    cacheDataManager: AnyCacheDataManager(
      loadFunc: () => loadDataFromCache(param),
      saveFunc: (newData) => saveDataToCache(newData, param),
      saveNextFunc: (cachedData, newData) => saveNextDataToCache(cachedData, newData, param),
      savePrevFunc: (cachedData, newData) => throw UnimplementedError(),
    ),
    originDataManager: AnyOriginDataManager(
      fetchFunc: () async {
        final result = await fetchDataFromOrigin(param);
        return InternalFetched(data: result.data, nextKey: result.nextKey, prevKey: null);
      },
      fetchNextFunc: (nextKey) async {
        final result = await fetchNextDataFromOrigin(nextKey, param);
        return InternalFetched(data: result.data, nextKey: result.nextKey, prevKey: null);
      },
      fetchPrevFunc: (prevKey) => throw UnimplementedError(),
    ),
    needRefresh: (cachedData) => needRefresh(cachedData, param),
  );
}