diff --git a/lib/api/api_mapper_class.dart b/lib/api/api_mapper_class.dart index 591477a..d059438 100644 --- a/lib/api/api_mapper_class.dart +++ b/lib/api/api_mapper_class.dart @@ -21,6 +21,7 @@ import 'package:mohem_flutter_app/models/get_mobile_login_info_list_model.dart'; import 'package:mohem_flutter_app/models/itg/itg_main_response.dart'; import 'package:mohem_flutter_app/models/itg/itg_response_model.dart'; import 'package:mohem_flutter_app/models/member_login_list_model.dart'; +import 'package:mohem_flutter_app/models/worklist/get_open_notifications.dart'; class ApiClassMapper { Future handleApiEndpoint({required String endpoint, required var jsonData, String? errorMessage}) async { @@ -273,8 +274,9 @@ class ApiClassMapper { case 'GET_MENU_ENTRIES': List data = (jsonDecode(jsonEncode(jsonData)) as List).map((item) => GetMenuEntriesList.fromRawJson(jsonEncode(item))).toList(); return data; - case 'GET_Open_Notifications': - return GenericResponseModel.fromJson(jsonData); + case 'GET_OPEN_NOTIFICATIONS': + List data = (jsonDecode(jsonEncode(jsonData)) as List).map((item) => GetOpenNotifications.fromRawJson(jsonEncode(item))).toList(); + return data; case 'GET_OPEN_MISSING_SWIPES': return GetOpenMissingSwipes.fromJson(jsonData); case 'GET_CONTACT_COLS_STRUCTURE': @@ -398,8 +400,8 @@ class ApiClassMapper { case 'GET_Attendance_Tracking': GetAttendanceTracking response = GetAttendanceTracking.fromJson(jsonData); return response; - case 'GET_OPEN_NOTIFICATIONS': - return GenericResponseModel(); + // case 'GET_OPEN_NOTIFICATIONS': + // return GenericResponseModel(); case 'GET_ABSENCE_TRANSACTIONS': return; case 'GET_ABSENCE_ATTENDANCE_TYPES': diff --git a/lib/api/dashboard_api_client.dart b/lib/api/dashboard_api_client.dart index 39ecb0e..00bfe14 100644 --- a/lib/api/dashboard_api_client.dart +++ b/lib/api/dashboard_api_client.dart @@ -15,6 +15,7 @@ import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart'; import 'package:mohem_flutter_app/models/generic_response_model.dart'; import 'package:mohem_flutter_app/models/itg/itg_main_response.dart'; import 'package:mohem_flutter_app/models/itg/itg_response_model.dart'; +import 'package:mohem_flutter_app/models/worklist/get_open_notifications.dart'; import 'package:platform_device_id_v2/platform_device_id_v2.dart'; import 'package:uuid/uuid.dart'; @@ -37,17 +38,16 @@ class DashboardApiClient { } - Future getOpenNotifications() async { + Future> getOpenNotifications() async { String url = "${ApiConsts.erpRest}GET_OPEN_NOTIFICATIONS"; Map postParams = {}; postParams.addAll(AppState().postParamsJson); dynamic response = await ApiClient().postJsonForObject((json) => json, url, postParams, token: AppState().postParamsObject!.tokenID); ApiResponse res = ApiResponse.fromJson(response); - GenericResponseModel ress = await ApiClassMapper().handleApiEndpoint(endpoint: "GET_OPEN_NOTIFICATIONS", jsonData: res); + List ress = await ApiClassMapper().handleApiEndpoint(endpoint: "GET_OPEN_NOTIFICATIONS", jsonData: res.data); return ress; - } Future getCOCNotifications() async { diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart index 8ef317a..66aeab3 100644 --- a/lib/classes/consts.dart +++ b/lib/classes/consts.dart @@ -1,6 +1,6 @@ class ApiConsts { - // static String baseUrl = "http://10.200.204.11"; // Local server + // static String baseUrl = "http://10.201.204.106:1050"; // Local server // static String baseUrl = "https://erptstapp.srca.org.sa"; // SRCA server // static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver @@ -11,13 +11,13 @@ class ApiConsts { // static String baseUrl = "https://mohemm.hmg.com"; // New Live server // static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver - static String baseUrl = "https://ms.hmg.com"; // Api 2.0 + //static String baseUrl = "https://ms.hmg.com"; // Api 2.0 // https://ms.hmg.com/mohem/api/Auth/MemberLogin // static String baseUrl = "http://10.20.200.111:1010/"; - // static String baseUrl = "https://webservices.hmg.com"; // PreProd + static String baseUrl = "https://mohemm.hmg.com/"; // PreProd // static String baseUrl = "https://mohemm.hmg.com"; // static String baseUrl = "https://hmgwebservices.com"; // Live server diff --git a/lib/models/worklist/get_open_notifications.dart b/lib/models/worklist/get_open_notifications.dart new file mode 100644 index 0000000..7bada73 --- /dev/null +++ b/lib/models/worklist/get_open_notifications.dart @@ -0,0 +1,29 @@ +import 'dart:convert'; + +class GetOpenNotifications { + String? iteMType; + String? iteMTypeDisplayName; + int? opeNNtfNumber; + + GetOpenNotifications({ + this.iteMType, + this.iteMTypeDisplayName, + this.opeNNtfNumber, + }); + + factory GetOpenNotifications.fromRawJson(String str) => GetOpenNotifications.fromJson(json.decode(str)); + + String toRawJson() => json.encode(toJson()); + + factory GetOpenNotifications.fromJson(Map json) => GetOpenNotifications( + iteMType: json["iteM_TYPE"], + iteMTypeDisplayName: json["iteM_TYPE_DISPLAY_NAME"], + opeNNtfNumber: json["opeN_NTF_NUMBER"], + ); + + Map toJson() => { + "iteM_TYPE": iteMType, + "iteM_TYPE_DISPLAY_NAME": iteMTypeDisplayName, + "opeN_NTF_NUMBER": opeNNtfNumber, + }; +} diff --git a/lib/provider/dashboard_provider_model.dart b/lib/provider/dashboard_provider_model.dart index 0b9c2bb..14d84bd 100644 --- a/lib/provider/dashboard_provider_model.dart +++ b/lib/provider/dashboard_provider_model.dart @@ -21,6 +21,7 @@ import 'package:mohem_flutter_app/models/dashboard/mohemm_itg_pending_task_respo import 'package:mohem_flutter_app/models/generic_response_model.dart'; import 'package:mohem_flutter_app/models/itg/itg_response_model.dart'; import 'package:mohem_flutter_app/models/offers_and_discounts/get_offers_list.dart'; +import 'package:mohem_flutter_app/models/worklist/get_open_notifications.dart'; import 'package:mohem_flutter_app/ui/landing/dashboard_screen.dart'; import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart'; @@ -137,12 +138,13 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin { Future fetchWorkListCounter(context, {bool showLoading = false}) async { try { if (showLoading) Utils.showLoading(context); - GenericResponseModel? genericResponseModel = await DashboardApiClient().getOpenNotifications(); + List getOpenNotificationsList = await DashboardApiClient().getOpenNotifications(); isWorkListLoading = false; - getOpenNotificationsList = genericResponseModel?.getOpenNotificationsList; + // getOpenNotificationsList = notificationLists; + // getOpenNotificationsList[0]?.opeNNtfNumber ?? 0; + workListCounter = getOpenNotificationsList.fold(0, (sum, item) => sum + (item?.opeNNtfNumber! ?? 0)); - workListCounter = genericResponseModel?.pOPENNTFNUMBER ?? 0; //itgFormsModel = await DashboardApiClient().getItgFormsPendingTask(); workListCounter = workListCounter + (itgFormsModel?.totalCount ?? 0);