import 'dart:convert'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:miapp_flutter/src/models/ArticuloModel.dart'; import '../http_api/ArticleApi.dart'; class ArticuloController { final Connectivity _connectivity = Connectivity(); final ArticleApi _articleApi = ArticleApi(); Future> getArticles(int categoryId) async { Map mapResp = { 'ok': false, 'message': 'No hay artículos', 'data': null }; // Verificar la conectividad de la red List connectivityResult = await _connectivity.checkConnectivity(); if (!connectivityResult.contains(ConnectivityResult.none)) { if (connectivityResult.contains(ConnectivityResult.wifi) || connectivityResult.contains(ConnectivityResult.mobile)) { try { // Realizar la solicitud a la API Map respGet = await _articleApi.getArticles(categoryId); if (respGet['statusCode'] == 200) { try { var decodeResp = json.decode(respGet['body']); List listArticles = ArticleModel.fromJsonArray(decodeResp['data']); mapResp['ok'] = true; mapResp['message'] = "${listArticles.length} artículos encontrados"; mapResp['data'] = listArticles; } catch (e) { mapResp['message'] = "Error en procesamiento de datos: $e"; } } else { mapResp['message'] = "Error en la respuesta de la API: ${respGet['body']}"; } } catch (e) { mapResp['message'] = "Error en la solicitud a la API: $e"; } } else { mapResp['message'] = 'No hay conexión a internet'; } } else { mapResp['message'] = 'No hay conexión a internet'; } return mapResp; } }