fromJson method

  1. @override
PaginatedResult<T> fromJson(
  1. Map<String, dynamic> jsonData, {
  2. Map<String, dynamic>? filter,
  3. int? limit,
  4. GraphQLRequest<PaginatedResult<T>>? requestForNextResult,
})

Implementation

@override
PaginatedResult<T> fromJson(
  Map<String, dynamic> jsonData, {
  Map<String, dynamic>? filter,
  int? limit,
  GraphQLRequest<PaginatedResult<T>>? requestForNextResult,
}) {
  final itemsJson = jsonData['items'] as List?;

  if (itemsJson == null || itemsJson.isEmpty) {
    return PaginatedResult<T>(
      [],
      limit,
      null,
      filter,
      modelType,
      requestForNextResult,
    );
  }

  final items = itemsJson
      .cast<Map<Object?, Object?>?>()
      .map(
        (e) =>
            e != null ? modelType.fromJson(e.cast<String, Object?>()) : null,
      )
      .toList();

  return PaginatedResult<T>(
    items,
    limit,
    jsonData['nextToken'] as String?,
    filter,
    modelType,
    requestForNextResult,
  );
}