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/generic_response_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_item_type_notifications_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_vacation_rules_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/respond_attributes_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/vr_item_types_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/wf_look_up_list_model.dart'; class VacationRuleApiClient { static final VacationRuleApiClient _instance = VacationRuleApiClient._internal(); VacationRuleApiClient._internal(); factory VacationRuleApiClient() => _instance; Future> getVacationRules() async { String url = "${ApiConsts.erpRest}GET_VACATION_RULES"; Map postParams = {"P_PAGE_LIMIT": 50, "P_PAGE_NUM": 1}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject((json) { GenericResponseModel? responseData = GenericResponseModel.fromJson(json); return responseData.getVacationRulesList ?? []; }, url, postParams); } Future> getVrItemTypes() async { String url = "${ApiConsts.erpRest}GET_VR_ITEM_TYPES"; Map postParams = {}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject((json) { GenericResponseModel? responseData = GenericResponseModel.fromJson(json); return responseData.vrItemTypesList ?? []; }, url, postParams); } Future> getItemTypeNotifications(String pItemType) async { String url = "${ApiConsts.erpRest}GET_ITEM_TYPE_NOTIFICATIONS"; Map postParams = {"P_ITEM_TYPE": pItemType}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject((json) { GenericResponseModel? responseData = GenericResponseModel.fromJson(json); return responseData.getItemTypeNotificationsList ?? []; }, url, postParams); } Future> getNotificationReassignMode() async { String url = "${ApiConsts.erpRest}GET_NOTIFICATION_REASSIGN_MODE"; Map postParams = {}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject((json) { GenericResponseModel? responseData = GenericResponseModel.fromJson(json); return responseData.getNotificationReassignModeList ?? []; }, url, postParams); } Future> getRespondAttributes(String pItemType, String pNotificationName) async { String url = "${ApiConsts.erpRest}GET_RESPOND_ATTRIBUTES"; Map postParams = {"P_ITEM_TYPE": pItemType, "P_NOTIFICATION_NAME": pNotificationName}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject((json) { GenericResponseModel? responseData = GenericResponseModel.fromJson(json); return responseData.respondAttributesList ?? []; }, url, postParams); } Future> getWfLookup(String pLookupType) async { String url = "${ApiConsts.erpRest}GET_WF_LOOKUP"; Map postParams = {"P_LOOKUP_TYPE": pLookupType}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject((json) { GenericResponseModel? responseData = GenericResponseModel.fromJson(json); return responseData.wFLookUpList ?? []; }, url, postParams); } }