import 'dart:convert'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:miapp_flutter/src/models/CategoriaModel.dart'; import '../http_api/CategoryApi.dart'; class CategoryController { final Connectivity _connectivity = Connectivity(); final CategoryApi _categoryApi = CategoryApi(); Future> getCategories() async { Map mapResp = { 'ok': false, 'message': 'No hay categorias', '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 _categoryApi.getCategories(); if (respGet['statusCode'] == 200) { try { var decodeResp = json.decode(respGet['body']); List listCategories = CategoriaModel .fromJsonArray(decodeResp['data']); mapResp['ok'] = true; mapResp['message'] = "${listCategories.length} categorías encontradas"; mapResp['data'] = listCategories; } 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; } }