import 'dart:convert'; import 'package:mohem_flutter_app/api/api_client.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/models/offers_and_discounts/get_categories_list.dart'; import 'package:mohem_flutter_app/models/offers_and_discounts/get_offers_list.dart'; class OffersAndDiscountsApiClient { static final OffersAndDiscountsApiClient _instance = OffersAndDiscountsApiClient._internal(); OffersAndDiscountsApiClient._internal(); factory OffersAndDiscountsApiClient() => _instance; Future> getSaleCategories() async { List getSaleCategoriesList = []; String url = "${ApiConsts.cocRest}Mohemm_ITG_GetCategories"; Map postParams = {"EmployeeNumber": AppState().memberInformationList?.eMPLOYEENUMBER, "ItgPageSize": 100, "ItgPageNo": 1, "ItgIsActive": true}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject( (response) { var body = json.decode(response['Mohemm_ITG_ResponseItem']); GetCategoriesList getSaleCategoriesListObj = GetCategoriesList(); getSaleCategoriesListObj.id = 0; getSaleCategoriesListObj.categoryNameEn = "All"; getSaleCategoriesListObj.categoryNameAr = "الجميع"; getSaleCategoriesListObj.isActive = true; getSaleCategoriesListObj.content = ' '; getSaleCategoriesList.add(getSaleCategoriesListObj); body['result']['data'].forEach((v) { getSaleCategoriesList.add(GetCategoriesList.fromJson(v)); }); return getSaleCategoriesList; }, url, postParams, ); } Future> getOffersList(int categoryID, int pageSize) async { List getSaleCategoriesList = []; String url = "${ApiConsts.cocRest}GetOfferDiscountsConfigData"; Map postParams = {"EmployeeNumber": AppState().memberInformationList?.eMPLOYEENUMBER, "ItgPageSize": pageSize, "ItgPageNo": 1, "ItgCategoryID": categoryID}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject( (response) { var body = json.decode(response['Mohemm_ITG_ResponseItem']); var bodyData = body['result']['data']; if (bodyData != null) { bodyData.forEach((v) { getSaleCategoriesList.add(OffersListModel.fromJson(v)); }); } return getSaleCategoriesList; }, url, postParams, ); } }