import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:test_sa/controllers/api_routes/api_manager.dart'; import 'package:test_sa/controllers/api_routes/urls.dart'; import 'models/asset_tracking_model.dart'; import 'models/floor_map_model.dart'; class AssetTrackingProvider extends ChangeNotifier { bool isLoading = false; bool isNextPageLoading = false; final pageItemNumber = 12; int pageNo = 1; List assetsList = []; reset() { isLoading = false; notifyListeners(); } Future getAssetsFromPenguin({bool loadMore = false}) async { if (isLoading || isNextPageLoading) return -2; if (loadMore) { isNextPageLoading = true; pageNo += 1; } else { isLoading = true; pageNo = 1; // reset pagination } notifyListeners(); try { final payload = {"pageSize": pageItemNumber, "pageNumber": pageNo}; final response = await ApiManager.instance.post(URLs.getAssetsFromPenguin, body: payload); if (response.statusCode >= 200 && response.statusCode < 300) { final Map jsonData = json.decode(response.body); List list = jsonData["data"]; assetsList.addAll(list.map((item) => AssetTrackingModel.fromJson(item)).toList()); if (jsonData["totalRows"] <= assetsList.length) { // nextPage = true; } print("assetsList:${assetsList.length}"); // if (loadMore) { // assetInventoryResponse?.assetList?.addAll(newResponse.assetList ?? []); // assetInventoryResponse?.totalRows = newResponse.totalRows; // } else { // assetInventoryResponse = newResponse; // } // nextPage = (assetInventoryResponse?.assetList?.length ?? 0) < (assetInventoryResponse?.totalRows ?? 0); } else { // nextPage = false; } isLoading = false; isNextPageLoading = false; notifyListeners(); return response.statusCode; } catch (error) { isLoading = false; isNextPageLoading = false; // stateCode = -1; // nextPage = false; notifyListeners(); return -1; } } Future getFloorMap(int floorId) async { FloorMapModel? floorMapModel; // try { final response = await ApiManager.instance.get(URLs.getFloorMap + "$floorId/maps"); if (response.statusCode >= 200 && response.statusCode < 300) { floorMapModel = FloorMapModel.fromJson(json.decode(response.body)["data"]); } return floorMapModel; // } catch (error) { // return floorMapModel; // } } }