MiniProgramPagedBackendSnapshot.fromResult constructor
MiniProgramPagedBackendSnapshot.fromResult(
- MiniProgramBackendResult result, {
- required String requestId,
- required MiniProgramPagedBackendQuery query,
- required bool append,
- MiniProgramPagedBackendSnapshot? previous,
Implementation
factory MiniProgramPagedBackendSnapshot.fromResult(
MiniProgramBackendResult result, {
required String requestId,
required MiniProgramPagedBackendQuery query,
required bool append,
MiniProgramPagedBackendSnapshot? previous,
}) {
final isSuccess = result.isSuccess;
if (!isSuccess) {
return MiniProgramPagedBackendSnapshot(
requestId: requestId,
status: MiniProgramBackendSnapshotStatus.failed,
endpoint: result.endpoint,
method: result.method ?? 'GET',
statusCode: result.statusCode,
message: result.message,
errorCode: result.errorCode,
items: previous?.items ?? const <Object?>[],
nextCursor: previous?.nextCursor,
hasMore: previous?.hasMore ?? false,
pageCount: previous?.pageCount ?? 0,
fromCache: result.fromCache,
updatedAt: DateTime.now().toUtc(),
);
}
final pageItems = _readList(result.data, query.itemsPath);
final items = append
? <Object?>[...?previous?.items, ...pageItems]
: pageItems;
final nextCursor = _readPath(result.data, query.nextCursorPath);
final hasMore = _readBool(result.data, query.hasMorePath);
return MiniProgramPagedBackendSnapshot(
requestId: requestId,
status: MiniProgramBackendSnapshotStatus.success,
endpoint: result.endpoint,
method: result.method ?? 'GET',
statusCode: result.statusCode,
message: result.message,
items: items,
nextCursor: nextCursor,
hasMore: hasMore,
pageCount: (append ? previous?.pageCount ?? 0 : 0) + 1,
fromCache: result.fromCache,
updatedAt: DateTime.now().toUtc(),
);
}