import 'dart:convert'; import 'package:http/http.dart'; class ApiResponse { int? statusCode; Paginacion? paginacion; List>? resultados; Map? detalle; Map? errores; String mensaje = ''; bool get isOk => statusCode! >= 200 && statusCode! < 300; bool get isError => statusCode! >= 400 && statusCode! < 500; bool get isServerError => statusCode! >= 500; ApiResponse(Response response) { statusCode = response.statusCode; var body = json.decode(response.body); if (body.containsKey('paginacion')) { var pag = body['paginacion']; paginacion = Paginacion( total: pag['total'], pagina: pag['pagina'], limite: pag['limite'], ); } if (body.containsKey('mensaje')) { mensaje = body['mensaje']; } if (body.containsKey('resultado') && body["resultado"] != null) { resultados = (body['resultado'] as List) .cast>() .toList(); } if (body.containsKey('detalle')) { detalle = body['detalle']; } if (body.containsKey('errores')) { errores = body['errores']; } } } class Paginacion { final int total; final int pagina; final int limite; Paginacion({required this.total, required this.pagina, required this.limite}); factory Paginacion.fromJson(Map json) { return Paginacion( total: json['total'], pagina: json['pagina'], limite: json['limite'], ); } }