Merge remote-tracking branch 'origin/master-Api2.0_update3.29' into master-Api2.0_update3.29

master-Api2.0_update3.29
Sultan khan 5 months ago
commit df43d99543

@ -266,6 +266,7 @@ import 'package:http/http.dart';
import 'package:http/io_client.dart';
import 'package:mohem_flutter_app/exceptions/api_exception.dart';
import 'package:mohem_flutter_app/main.dart';
import 'package:mohem_flutter_app/models/generic_mapper_model.dart';
// ignore_for_file: avoid_annotating_with_dynamic
typedef FactoryConstructor<U> = U Function(dynamic);
@ -286,6 +287,96 @@ class APIError {
}
}
// class ApiResponse {
// dynamic totalItemsCount;
// List<dynamic>? data;
// int? messageStatus;
// dynamic errorMessage;
// dynamic errorEndUserMessage;
//
// ApiResponse({
// this.totalItemsCount,
// this.data,
// this.messageStatus,
// this.errorMessage,
// this.errorEndUserMessage,
// });
//
// factory ApiResponse.fromRawJson(String str) => ApiResponse.fromJson(json.decode(str));
//
// String toRawJson() => json.encode(toJson());
//
// factory ApiResponse.fromJson(Map<String, dynamic> json) => ApiResponse(
// totalItemsCount: json["TotalItemsCount"],
// data: json["Data"] == null ? [] : List<dynamic>.from(json["Data"]!.map((x) => x)),
// messageStatus: json["MessageStatus"],
// errorMessage: json["ErrorMessage"],
// errorEndUserMessage: json["ErrorEndUserMessage"],
// );
//
// Map<String, dynamic> toJson() => {
// "TotalItemsCount": totalItemsCount,
// "Data": data == null ? [] : List<dynamic>.from(data!.map((x) => x)),
// "MessageStatus": messageStatus,
// "ErrorMessage": errorMessage,
// "ErrorEndUserMessage": errorEndUserMessage,
// };
//
// bool get isSuccess => messageStatus == 1 && errorMessage == null;
// }
// class ApiResponse<T> {
// final int? totalItemsCount;
// final T data;
// final int? messageStatus;
// final String? errorMessage;
// final String? errorEndUserMessage;
//
// final T Function(dynamic)? fromJsonT;
// final String Function(T)? toJsonT;
//
// ApiResponse({
// required this.totalItemsCount,
// required this.data,
// required this.messageStatus,
// this.errorMessage,
// this.errorEndUserMessage,
// this.fromJsonT,
// this.toJsonT,
// });
//
// factory ApiResponse.fromJson(
// Map<String, dynamic> json,
// ) {
// return ApiResponse<T>(
// totalItemsCount: json['totalItemsCount'], data: json['data'], messageStatus: json['messageStatus'], errorMessage: json['errorMessage'], errorEndUserMessage: json['errorEndUserMessage']);
// }
//
// factory ApiResponse.fromRawJson(String str) => ApiResponse.fromJson(json.decode(str));
//
// String toRawJson() {
// if (toJsonT == null) {
// throw Exception("toJsonT function is not provided for serialization.");
// }
// return json.encode(toJson());
// }
//
// Map<String, dynamic> toJson() {
// if (toJsonT == null) {
// throw Exception("toJsonT function is not provided for serialization.");
// }
// return {
// "TotalItemsCount": totalItemsCount,
// "Data": toJsonT!(data),
// "MessageStatus": messageStatus,
// "ErrorMessage": errorMessage,
// "ErrorEndUserMessage": errorEndUserMessage,
// };
// }
//
// bool get isSuccess => messageStatus == 1 && errorMessage == null;
// }
class ApiResponse<T> {
final int? totalItemsCount;
final T data;
@ -293,23 +384,27 @@ class ApiResponse<T> {
final String? errorMessage;
final String? errorEndUserMessage;
ApiResponse({
required this.totalItemsCount,
required this.data,
required this.messageStatus,
this.errorMessage,
this.errorEndUserMessage,
});
factory ApiResponse.fromJson(Map<String, dynamic> json, T Function(dynamic) fromJsonT) {
return ApiResponse<T>(
totalItemsCount: json['totalItemsCount'],
data: fromJsonT(json['data']),
messageStatus: json['messageStatus'],
errorMessage: json['errorMessage'],
errorEndUserMessage: json['errorEndUserMessage'],
);
}
ApiResponse({required this.totalItemsCount, required this.data, required this.messageStatus, this.errorMessage, this.errorEndUserMessage});
factory ApiResponse.fromRawJson(String str) => ApiResponse.fromJson(json.decode(str));
String toRawJson() => json.encode(toJson());
factory ApiResponse.fromJson(Map<String, dynamic> json) => ApiResponse(
totalItemsCount: json["TotalItemsCount"],
data: json["Data"],
messageStatus: json["MessageStatus"],
errorMessage: json["ErrorMessage"],
errorEndUserMessage: json["ErrorEndUserMessage"],
);
Map<String, dynamic> toJson() => {
"TotalItemsCount": totalItemsCount,
"Data": data,
"MessageStatus": messageStatus,
"ErrorMessage": errorMessage,
"ErrorEndUserMessage": errorEndUserMessage,
};
bool get isSuccess => messageStatus == 1 && errorMessage == null;
}
@ -364,40 +459,25 @@ class ApiClient {
factory ApiClient() => _instance;
Future<U> postJsonForObject<T, U>(
FactoryConstructor<U> factoryConstructor,
String url,
T jsonObject, {
String? token,
Map<String, dynamic>? queryParameters,
Map<String, String>? headers,
int retryTimes = 0,
bool isFormData = false,
bool returnJsonData = true,
}) async {
Future<U> postJsonForObject<T, U>(FactoryConstructor<U> factoryConstructor, String url, T jsonObject,
{String? token, Map<String, dynamic>? queryParameters, Map<String, String>? headers, int retryTimes = 0, bool isFormData = false, bool returnJsonData = true}) async {
var _headers = {'Accept': 'application/json'};
if (headers != null && headers.isNotEmpty) {
_headers.addAll(headers);
if (token != null && token.isNotEmpty) {
_headers.addAll({'Bearer': '$token'});
}
// logger.d(_headers);
if (!kReleaseMode) {
print("Url:$url");
var bodyJson = json.encode(jsonObject);
print("body:$bodyJson");
}
var response = await postJsonForResponse(
url,
jsonObject,
token: token,
queryParameters: queryParameters,
headers: _headers,
retryTimes: retryTimes,
isFormData: isFormData,
);
var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: _headers, retryTimes: retryTimes, isFormData: isFormData);
if (!kReleaseMode) {
logger.i("res: " + response.body);
logger.i("res: ${response.body}");
}
var jsonData = jsonDecode(response.body);
@ -409,10 +489,10 @@ class ApiClient {
}
// Create ApiResponse from the json
var apiResponse = ApiResponse.fromJson(jsonData, (res) => returnJsonData ? res : jsonData);
var apiResponse = ApiResponse.fromJson(jsonData);
if (apiResponse.isSuccess) {
return factoryConstructor(apiResponse);
return factoryConstructor(jsonData);
} else {
throw APIException(
APIException.BAD_REQUEST,
@ -454,14 +534,7 @@ class ApiClient {
);
}
return await _postForResponse(
url,
isFormData ? stringObj : requestBody,
token: token,
queryParameters: queryParameters,
headers: headers,
retryTimes: retryTimes,
);
return await _postForResponse(url, isFormData ? stringObj : requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes);
}
Future<Response> _postForResponse(
@ -574,7 +647,7 @@ class ApiClient {
);
}
Future<ApiResponse<U>> getJsonForObject<T, U>(
Future<ApiResponse> getJsonForObject<T, U>(
FactoryConstructor<U> factoryConstructor,
String url, {
String? token,
@ -600,28 +673,19 @@ class ApiClient {
// AppState().setIsAuthenticated = jsonData["IsAuthenticated"];
}
var apiResponse = ApiResponse.fromJson(
jsonData,
(data) => returnJsonData ? data : jsonData,
);
var apiResponse = ApiResponse.fromJson(jsonData);
if (apiResponse.isSuccess) {
return ApiResponse<U>(
totalItemsCount: apiResponse.totalItemsCount,
data: factoryConstructor(apiResponse.data),
messageStatus: apiResponse.messageStatus,
errorMessage: apiResponse.errorMessage,
errorEndUserMessage: apiResponse.errorEndUserMessage,
);
return ApiResponse(
totalItemsCount: apiResponse.totalItemsCount,
data: apiResponse.data,
messageStatus: apiResponse.messageStatus,
errorMessage: apiResponse.errorMessage,
errorEndUserMessage: apiResponse.errorEndUserMessage);
} else {
throw APIException(
APIException.BAD_REQUEST,
error: APIError(
null,
apiResponse.errorEndUserMessage ?? apiResponse.errorMessage,
null,
response.statusCode,
),
error: APIError(null, apiResponse.errorEndUserMessage ?? apiResponse.errorMessage, null, response.statusCode),
);
}
}

@ -1,9 +1,11 @@
import 'dart:convert';
import 'package:flutter/foundation.dart';
import 'package:mohem_flutter_app/api/api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/main.dart';
import 'package:mohem_flutter_app/models/basic_member_information_model.dart';
import 'package:mohem_flutter_app/models/check_activation_code_model.dart';
import 'package:mohem_flutter_app/models/check_mobile_app_version_model.dart';
import 'package:mohem_flutter_app/models/dashboard/get_accrual_balances_list_model.dart';
import 'package:mohem_flutter_app/models/dashboard/get_attendance_tracking_list_model.dart';
@ -16,23 +18,40 @@ import 'package:mohem_flutter_app/models/itg/itg_response_model.dart';
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
class ApiClassMapper {
Future<dynamic> handleApiEndpoint({required String endpoint, required var jsonData}) async {
Future<dynamic> handleApiEndpoint({required String endpoint, required var jsonData, String? errorMessage}) async {
switch (endpoint) {
case 'MemberLogin':
return MemberLoginListModel.fromRawJson(json.encode(jsonData.data));
return MemberLoginListModel.fromRawJson(jsonEncode(jsonData));
case 'Mohemm_SendActivationCodebyOTPNotificationType':
logger.d("Mohemm_SendActivationCodebyOTPNotificationType");
BasicMemberInformationModel response = BasicMemberInformationModel.fromRawJson(json.encode(jsonData.data));
BasicMemberInformationModel response = BasicMemberInformationModel.fromRawJson(jsonEncode(jsonData));
AppState().postParamsObject?.setLogInTokenID = response.logInTokenId;
return response;
case 'CheckActivationCode':
return;
CheckActivationCodeModel responseData = CheckActivationCodeModel.fromRawJson(jsonEncode(jsonData));
AppState().postParamsObject?.setTokenID = responseData.authenticationTokenId;
AppState().postParamsObject?.mobileNumber = responseData.basicMemberInformation!.pMobileNumber;
AppState().postParamsObject?.userName = AppState().getUserName;
AppState().postParamsObject?.pEmailAddress = responseData.basicMemberInformation!.pEmailAddress;
AppState().postParamsObject?.pSessionId = responseData.pSessionId;
AppState().postParamsObject?.pUserName = AppState().getUserName;
AppState().postParamsObject?.pSelectedEmployeeNumber = AppState().getUserName;
AppState().postParamsObject?.setPLegislationCode = responseData.basicMemberInformation!.pLegislationCode;
AppState().postParamsObject?.setPayrollCodeStr = responseData.memberInformationList!.first.pAYROLLCODE;
AppState().setBusinessCardPrivilege = responseData.memberInformationList!.first.businessCardPrivilege ?? false;
// AppState().postParamsObject!.logInTokenID = responseData.authenticationTokenId;
responseData.errorMessage = errorMessage;
return responseData;
case 'RefreshToken':
return;
case 'Logout':
return;
case 'Mohemm_Insert_MobileDeviceInfo':
if (jsonData is Map && jsonData['Data'] == true) {
return true;
} else {
return false;
}
return;
case 'Mohemm_GetMobileLoginInfo_NEW':
return;
@ -47,8 +66,7 @@ class ApiClassMapper {
case 'ChangePassword_Forget':
return;
case 'CheckMobileAppVersion':
GenericMapperModel response = GenericMapperModel.fromRawJson(json.encode(jsonData.data));
return CheckMobileAppVersionModel.fromRawJson(json.encode(response));
return CheckMobileAppVersionModel.fromRawJson(jsonData);
// COCWS endpoints
case 'Mohemm_ITG_GetCategories':
return;

@ -27,7 +27,7 @@ class DashboardApiClient {
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
GenericResponseModel responseData = GenericResponseModel.fromJson(json["Data"]);
return responseData.getAttendanceTrackingList;
}, url, postParams);
}
@ -37,7 +37,7 @@ class DashboardApiClient {
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
GenericResponseModel responseData = GenericResponseModel.fromJson(json["Data"]);
return responseData;
}, url, postParams);
}
@ -68,7 +68,7 @@ class DashboardApiClient {
postParams.addAll(AppState().postParamsJson);
if (empID != null) postParams["P_SELECTED_EMPLOYEE_NUMBER"] = empID;
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
GenericResponseModel responseData = GenericResponseModel.fromJson(json["Data"]);
return responseData.getAccrualBalancesList ?? [];
}, url, postParams);
}
@ -78,18 +78,18 @@ class DashboardApiClient {
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
GenericResponseModel responseData = GenericResponseModel.fromJson(json["Data"]);
return responseData;
}, url, postParams);
}
//Menus List
Future<List<ListMenu>> getListMenu() async {
String url = "${ApiConsts.erpRest}GET_MENU";
String url = "${ApiConsts.erpRest}GET_Menu_Entries";
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
GenericResponseModel responseData = GenericResponseModel.fromJson(json["Data"]);
return responseData.listMenu ?? [];
}, url, postParams);
}
@ -147,7 +147,7 @@ class DashboardApiClient {
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
GenericResponseModel responseData = GenericResponseModel.fromJson(json["Data"]);
return responseData;
}, url, postParams);
}
@ -163,7 +163,7 @@ class DashboardApiClient {
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
GenericResponseModel responseData = GenericResponseModel.fromJson(json["Data"]);
MohemmItgResponseItem res = MohemmItgResponseItem.fromJson(jsonDecode(responseData.mohemmITGResponseItem ?? ""));
// var jsonDecodedData = jsonDecode(jsonDecode(responseData.mohemmITGResponseItem!)['result']['data']);
return res;

@ -5,6 +5,7 @@ import 'package:mohem_flutter_app/api/api_mapper_class.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/basic_member_information_model.dart';
import 'package:mohem_flutter_app/models/check_activation_code_model.dart';
import 'package:mohem_flutter_app/models/check_mobile_app_version_model.dart';
import 'package:mohem_flutter_app/models/generic_mapper_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
@ -29,9 +30,10 @@ class LoginApiClient {
}, url, postParams);
}
Future<GenericResponseModel?> insertMobileLoginInfoNEW(
Future<bool?> insertMobileLoginInfoNEW(
String email, int sessionId, String employeeName, int loginType, String mobileNumber, String userName, String deviceToken, String deviceType) async {
String url = "${ApiConsts.authRest}Mohemm_InsertMobileLoginInfo";
String url = "${ApiConsts.authRest}Mohemm_Insert_MobileDeviceInfo";
// String url = "${ApiConsts.authRest}Mohemm_InsertMobileLoginInfo";
Map<String, dynamic> postParams = {
"MobileNumber": mobileNumber,
"P_USER_NAME": userName,
@ -46,11 +48,14 @@ class LoginApiClient {
postParams["DeviceToken"] = deviceToken;
postParams["DeviceType"] = deviceType;
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
dynamic response = await ApiClient().postJsonForObject((json) => json, url, postParams, token: AppState().postParamsObject!.tokenID);
ApiResponse res = ApiResponse.fromJson(response);
dynamic ress = await ApiClassMapper().handleApiEndpoint(endpoint: "Mohemm_Insert_MobileDeviceInfo", jsonData: res);
if(ress == true){
AppState().setLogged = true;
return responseData;
}, url, postParams);
}
return ress;
}
Future<CheckMobileAppVersionModel?> checkMobileAppVersion() async {
@ -58,8 +63,14 @@ class LoginApiClient {
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
dynamic response = await ApiClient().postJsonForObject((json) => json, url, postParams, returnJsonData: false);
CheckMobileAppVersionModel res = await ApiClassMapper().handleApiEndpoint(endpoint: "CheckMobileAppVersion", jsonData: response);
return res;
ApiResponse res = ApiResponse.fromJson(response);
if (res.data == null || res.data!.isEmpty) {
return CheckMobileAppVersionModel(data: ""); // Handle the case where response data is null
} else {
CheckMobileAppVersionModel res = await ApiClassMapper().handleApiEndpoint(endpoint: "CheckMobileAppVersion", jsonData: response.data);
return res;
}
}
Future<MemberLoginListModel> memberLogin(String username, String password) async {
@ -67,40 +78,32 @@ class LoginApiClient {
Map<String, dynamic> postParams = {"P_APP_VERSION": "CS", "P_LANGUAGE": "US", "P_PASSWORD": password, "P_USER_NAME": username};
postParams.addAll(AppState().postParamsJson);
dynamic response = await ApiClient().postJsonForObject((json) => json, url, postParams);
MemberLoginListModel res = await ApiClassMapper().handleApiEndpoint(endpoint: "MemberLogin", jsonData: response);
AppState().postParamsObject?.setLogInTokenID = res.logInTokenId;
print("setLogInTokenID: ${AppState().postParamsObject?.logInTokenID}");
return res;
ApiResponse res = ApiResponse.fromJson(response);
MemberLoginListModel ress = await ApiClassMapper().handleApiEndpoint(endpoint: "MemberLogin", jsonData: res.data);
AppState().postParamsObject?.setLogInTokenID = ress.logInTokenId;
print("getLogInTokenID: ${AppState().postParamsObject?.getLogInTokenID}");
return ress;
}
Future<BasicMemberInformationModel?> mohemmSendActivationCodeByOTPNotificationType(int isMobileFingerPrint, String? mobileNumber, int optSendType, String? pUserName) async {
String url = "${ApiConsts.authRest}Mohemm_SendActivationCodebyOTPNotificationType";
Map<String, dynamic> postParams = {"IsMobileFingerPrint": isMobileFingerPrint, "MobileNumber": mobileNumber, "OTP_SendType": optSendType, "P_USER_NAME": pUserName};
postParams.addAll(AppState().postParamsJson);
postParams["LogInTokenID"] = AppState().postParamsObject?.logInTokenID;
postParams["LogInTokenID"] = AppState().postParamsObject?.getLogInTokenID;
print(postParams);
dynamic response = await ApiClient().postJsonForObject((json) => json, url, postParams);
return await ApiClassMapper().handleApiEndpoint(endpoint: "Mohemm_SendActivationCodebyOTPNotificationType", jsonData: response);
ApiResponse res = ApiResponse.fromJson(response);
return await ApiClassMapper().handleApiEndpoint(endpoint: "Mohemm_SendActivationCodebyOTPNotificationType", jsonData: res.data);
}
Future<GenericResponseModel?> checkActivationCode(bool isDeviceNFC, String? mobileNumber, String activationCode, String? pUserName) async {
Future<CheckActivationCodeModel?> checkActivationCode(bool isDeviceNFC, String? mobileNumber, String activationCode, String? pUserName) async {
String url = "${ApiConsts.authRest}CheckActivationCode";
Map<String, dynamic> postParams = {"IsDeviceNFC": isDeviceNFC, "MobileNumber": mobileNumber, "ActivationCode": activationCode, "P_USER_NAME": pUserName};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json.data);
AppState().postParamsObject?.setTokenID = responseData.tokenID;
AppState().postParamsObject?.mobileNumber = responseData.basicMemberInformation!.pMobileNumber;
AppState().postParamsObject?.userName = AppState().getUserName;
AppState().postParamsObject?.pEmailAddress = responseData.basicMemberInformation!.pEmailAddress;
AppState().postParamsObject?.pSessionId = responseData.pSESSIONID;
AppState().postParamsObject?.pUserName = AppState().getUserName;
AppState().postParamsObject?.pSelectedEmployeeNumber = AppState().getUserName;
AppState().postParamsObject?.setPLegislationCode = responseData.basicMemberInformation!.pLegislationCode;
AppState().postParamsObject?.setPayrollCodeStr = responseData.memberInformationList!.first.pAYROLLCODE;
AppState().setBusinessCardPrivilege = responseData.businessCardPrivilege ?? false;
return responseData;
}, url, postParams);
postParams["LogInTokenID"] = AppState().postParamsObject?.getLogInTokenID;
dynamic response = await ApiClient().postJsonForObject((json) => json, url, postParams);
ApiResponse res = ApiResponse.fromJson(response);
return await ApiClassMapper().handleApiEndpoint(endpoint: "CheckActivationCode", jsonData: res.data);
}
Future<BasicMemberInformationModel?> getBasicUserInformation(String pAppVersion, String pUsername) async {

@ -102,7 +102,7 @@ class MyTeamApiClient {
postParams.addAll(AppState().postParamsJson);
postParams['P_SELECTED_EMPLOYEE_NUMBER'] = empID;
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
GenericResponseModel? responseData = GenericResponseModel.fromJson(json["Data"]);
return responseData.getMenuEntriesList ?? [];
}, url, postParams);
}

@ -22,20 +22,20 @@ class BasicMemberInformationModel {
String toRawJson() => json.encode(toJson());
factory BasicMemberInformationModel.fromJson(Map<String, dynamic> json) => BasicMemberInformationModel(
pReturnStatus: json["p_RETURN_STATUS"],
pReturnMsg: json["p_RETURN_MSG"],
pMobileNumber: json["p_MOBILE_NUMBER"],
pEmailAddress: json["p_EMAIL_ADDRESS"],
pLegislationCode: json["p_LEGISLATION_CODE"],
logInTokenId: json["logInTokenID"],
);
pReturnStatus: json["P_RETURN_STATUS"],
pReturnMsg: json["P_RETURN_MSG"],
pMobileNumber: json["P_MOBILE_NUMBER"],
pEmailAddress: json["P_EMAIL_ADDRESS"],
pLegislationCode: json["P_LEGISLATION_CODE"],
logInTokenId: json["LogInTokenID"],
);
Map<String, dynamic> toJson() => {
"p_RETURN_STATUS": pReturnStatus,
"p_RETURN_MSG": pReturnMsg,
"p_MOBILE_NUMBER": pMobileNumber,
"p_EMAIL_ADDRESS": pEmailAddress,
"p_LEGISLATION_CODE": pLegislationCode,
"logInTokenID": logInTokenId,
};
"P_RETURN_STATUS": pReturnStatus,
"P_RETURN_MSG": pReturnMsg,
"P_MOBILE_NUMBER": pMobileNumber,
"P_EMAIL_ADDRESS": pEmailAddress,
"P_LEGISLATION_CODE": pLegislationCode,
"LogInTokenID": logInTokenId,
};
}

@ -0,0 +1,117 @@
import 'dart:convert';
import 'package:mohem_flutter_app/models/basic_member_information_model.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/models/privilege_list_model.dart';
class CheckActivationCodeModel {
String? authenticationTokenId;
String? pPassowrdExpired;
String? pPasswordExpiredMsg;
String? pInvalidLoginMsg;
String? mohemmWifiSsid;
String? mohemmWifiPassword;
String? companyImageUrl;
String? companyImageDescription;
String? companyBadge;
String? companyMainCompany;
dynamic bcLogo;
dynamic bcDomain;
dynamic businessGroupName;
String? pReturnStatus;
String? pReturnMsg;
List<MemberInformationListModel>? memberInformationList;
BasicMemberInformationModel? basicMemberInformation;
dynamic mohemmItgResponseItem;
int? pSessionId;
String? tokenId;
String? refreshToken;
String? errorMessage;
DateTime? expiry;
List<PrivilegeListModel>? privilegeList;
CheckActivationCodeModel({
this.authenticationTokenId,
this.pPassowrdExpired,
this.pPasswordExpiredMsg,
this.pInvalidLoginMsg,
this.mohemmWifiSsid,
this.mohemmWifiPassword,
this.companyImageUrl,
this.companyImageDescription,
this.companyBadge,
this.companyMainCompany,
this.bcLogo,
this.bcDomain,
this.businessGroupName,
this.pReturnStatus,
this.pReturnMsg,
this.memberInformationList,
this.basicMemberInformation,
this.mohemmItgResponseItem,
this.pSessionId,
this.tokenId,
this.refreshToken,
this.errorMessage,
this.expiry,
this.privilegeList,
});
factory CheckActivationCodeModel.fromRawJson(String str) => CheckActivationCodeModel.fromJson(json.decode(str));
String toRawJson() => json.encode(toJson());
factory CheckActivationCodeModel.fromJson(Map<String, dynamic> json) => CheckActivationCodeModel(
authenticationTokenId: json["AuthenticationTokenID"],
pPassowrdExpired: json["P_PASSOWRD_EXPIRED"],
pPasswordExpiredMsg: json["P_PASSWORD_EXPIRED_MSG"],
pInvalidLoginMsg: json["P_INVALID_LOGIN_MSG"],
mohemmWifiSsid: json["Mohemm_Wifi_SSID"],
mohemmWifiPassword: json["Mohemm_Wifi_Password"],
companyImageUrl: json["CompanyImageURL"],
companyImageDescription: json["CompanyImageDescription"],
companyBadge: json["CompanyBadge"],
companyMainCompany: json["CompanyMainCompany"],
bcLogo: json["BC_Logo"],
bcDomain: json["BC_Domain"],
businessGroupName: json["BUSINESS_GROUP_NAME"],
pReturnStatus: json["P_RETURN_STATUS"],
pReturnMsg: json["P_RETURN_MSG"],
memberInformationList: json["MemberInformationList"] == null ? [] : List<MemberInformationListModel>.from(json["MemberInformationList"]!.map((x) => MemberInformationListModel.fromJson(x))),
basicMemberInformation: json["BasicMemberInformation"] == null ? null : BasicMemberInformationModel.fromJson(json["BasicMemberInformation"]),
mohemmItgResponseItem: json["Mohemm_ITG_ResponseItem"],
pSessionId: json["P_SESSION_ID"],
tokenId: json["TokenId"],
refreshToken: json["RefreshToken"],
errorMessage: json["ErrorMessage"],
expiry: json["Expiry"] == null ? null : DateTime.parse(json["Expiry"]),
privilegeList: json["Privilege_List"] == null ? [] : List<PrivilegeListModel>.from(json["Privilege_List"]!.map((x) => PrivilegeListModel.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"AuthenticationTokenID": authenticationTokenId,
"P_PASSOWRD_EXPIRED": pPassowrdExpired,
"P_PASSWORD_EXPIRED_MSG": pPasswordExpiredMsg,
"P_INVALID_LOGIN_MSG": pInvalidLoginMsg,
"Mohemm_Wifi_SSID": mohemmWifiSsid,
"Mohemm_Wifi_Password": mohemmWifiPassword,
"CompanyImageURL": companyImageUrl,
"CompanyImageDescription": companyImageDescription,
"CompanyBadge": companyBadge,
"CompanyMainCompany": companyMainCompany,
"BC_Logo": bcLogo,
"BC_Domain": bcDomain,
"BUSINESS_GROUP_NAME": businessGroupName,
"P_RETURN_STATUS": pReturnStatus,
"P_RETURN_MSG": pReturnMsg,
"MemberInformationList": memberInformationList == null ? [] : List<dynamic>.from(memberInformationList!.map((x) => x.toJson())),
"BasicMemberInformation": basicMemberInformation?.toJson(),
"Mohemm_ITG_ResponseItem": mohemmItgResponseItem,
"P_SESSION_ID": pSessionId,
"TokenId": tokenId,
"RefreshToken": refreshToken,
"ErrorMessage": errorMessage,
"Expiry": expiry?.toIso8601String(),
"Privilege_List": privilegeList == null ? [] : List<dynamic>.from(privilegeList!.map((x) => x.toJson())),
};
}

@ -1,11 +1,9 @@
import 'dart:convert';
class CheckMobileAppVersionModel {
String? data;
dynamic data;
CheckMobileAppVersionModel({
this.data,
});
CheckMobileAppVersionModel({this.data});
factory CheckMobileAppVersionModel.fromRawJson(String str) => CheckMobileAppVersionModel.fromJson(json.decode(str));

@ -1,37 +1,37 @@
import 'dart:convert';
class GenericMapperModel {
int? totalItemsCount;
dynamic data;
int? messageStatus;
dynamic errorMessage;
dynamic errorEndUserMessage;
GenericMapperModel({
this.totalItemsCount,
this.data,
this.messageStatus,
this.errorMessage,
this.errorEndUserMessage,
});
factory GenericMapperModel.fromRawJson(String str) => GenericMapperModel.fromJson(json.decode(str));
String toRawJson() => json.encode(toJson());
factory GenericMapperModel.fromJson(Map<String, dynamic> json) => GenericMapperModel(
totalItemsCount: json["totalItemsCount"],
data: json["data"],
messageStatus: json["messageStatus"],
errorMessage: json["errorMessage"],
errorEndUserMessage: json["errorEndUserMessage"],
);
Map<String, dynamic> toJson() => {
"totalItemsCount": totalItemsCount,
"data": data,
"messageStatus": messageStatus,
"errorMessage": errorMessage,
"errorEndUserMessage": errorEndUserMessage,
};
}
// import 'dart:convert';
//
// class GenericMapperModel {
// int? totalItemsCount;
// dynamic data;
// int? messageStatus;
// dynamic errorMessage;
// dynamic errorEndUserMessage;
//
// GenericMapperModel({
// this.totalItemsCount,
// this.data,
// this.messageStatus,
// this.errorMessage,
// this.errorEndUserMessage,
// });
//
// factory GenericMapperModel.fromRawJson(String str) => GenericMapperModel.fromJson(json.decode(str));
//
// String toRawJson() => json.encode(toJson());
//
// factory GenericMapperModel.fromJson(Map<String, dynamic> json) => GenericMapperModel(
// totalItemsCount: json["TotalItemsCount"],
// data: json["Data"],
// messageStatus: json["MessageStatus"],
// errorMessage: json["ErrorMessage"],
// errorEndUserMessage: json["ErrorEndUserMessage"],
// );
//
// Map<String, dynamic> toJson() => {
// "TotalItemsCount": totalItemsCount,
// "Data": data,
// "MessageStatus": messageStatus,
// "ErrorMessage": errorMessage,
// "ErrorEndUserMessage": errorEndUserMessage,
// };
// }

@ -62,7 +62,7 @@ class MemberInformationListModel {
int? pOSITIONID;
String? pOSITIONNAME;
String? pRIMARYFLAG;
int? rOWNUM;
String? rOWNUM;
int? sERVICEDAYS;
int? sERVICEMONTHS;
int? sERVICEYEARS;
@ -85,6 +85,7 @@ class MemberInformationListModel {
int? tOROWNUM;
String? uNITNUMBER;
String? uSERSTATUS;
bool? businessCardPrivilege;
MemberInformationListModel(
{this.aCTUALTERMINATIONDATE,
@ -97,6 +98,7 @@ class MemberInformationListModel {
this.bUSINESSGROUPID,
this.bUSINESSGROUPNAME,
this.businessCardQR,
this.businessCardPrivilege,
this.cURRENTEMPLOYEEFLAG,
this.eMPLOYEEDISPLAYNAME,
this.eMPLOYEEDISPLAYNAMEAr,
@ -174,6 +176,7 @@ class MemberInformationListModel {
aSSIGNMENTENDDATE = json['ASSIGNMENT_END_DATE'];
aSSIGNMENTID = json['ASSIGNMENT_ID'];
aSSIGNMENTNUMBER = json['ASSIGNMENT_NUMBER'];
businessCardPrivilege = json['businessCardPrivilege'];
aSSIGNMENTSTARTDATE = json['ASSIGNMENT_START_DATE'];
aSSIGNMENTSTATUSTYPEID = json['ASSIGNMENT_STATUS_TYPE_ID'];
aSSIGNMENTTYPE = json['ASSIGNMENT_TYPE'];
@ -276,6 +279,7 @@ class MemberInformationListModel {
data['EMPLOYEE_NAME_Ar'] = this.eMPLOYEENAMEAr;
data['EMPLOYEE_NAME_En'] = this.eMPLOYEENAMEEn;
data['EMPLOYEE_NUMBER'] = this.eMPLOYEENUMBER;
data['businessCardPrivilege'] = this.businessCardPrivilege;
data['EMPLOYEE_WORK_NUMBER'] = this.eMPLOYEEWORKNUMBER;
data['EMPLOYMENT_CATEGORY'] = this.eMPLOYMENTCATEGORY;
data['EMPLOYMENT_CATEGORY_MEANING'] = this.eMPLOYMENTCATEGORYMEANING;

@ -26,24 +26,24 @@ class MemberLoginListModel {
String toRawJson() => json.encode(toJson());
factory MemberLoginListModel.fromJson(Map<String, dynamic> json) => MemberLoginListModel(
pReturnStatus: json["p_RETURN_STATUS"],
pReturnMsg: json["p_RETURN_MSG"],
pPassowrdExpired: json["p_PASSOWRD_EXPIRED"],
pPasswordExpiredMsg: json["p_PASSWORD_EXPIRED_MSG"],
pMobileNumber: json["p_MOBILE_NUMBER"],
pEmailAddress: json["p_EMAIL_ADDRESS"],
pLegislationCode: json["p_LEGISLATION_CODE"],
logInTokenId: json["logInTokenID"],
pReturnStatus: json["P_RETURN_STATUS"],
pReturnMsg: json["P_RETURN_MSG"],
pPassowrdExpired: json["P_PASSOWRD_EXPIRED"],
pPasswordExpiredMsg: json["P_PASSWORD_EXPIRED_MSG"],
pMobileNumber: json["P_MOBILE_NUMBER"],
pEmailAddress: json["P_EMAIL_ADDRESS"],
pLegislationCode: json["P_LEGISLATION_CODE"],
logInTokenId: json["LogInTokenID"],
);
Map<String, dynamic> toJson() => {
"p_RETURN_STATUS": pReturnStatus,
"p_RETURN_MSG": pReturnMsg,
"p_PASSOWRD_EXPIRED": pPassowrdExpired,
"p_PASSWORD_EXPIRED_MSG": pPasswordExpiredMsg,
"p_MOBILE_NUMBER": pMobileNumber,
"p_EMAIL_ADDRESS": pEmailAddress,
"p_LEGISLATION_CODE": pLegislationCode,
"logInTokenID": logInTokenId,
"P_RETURN_STATUS": pReturnStatus,
"P_RETURN_MSG": pReturnMsg,
"P_PASSOWRD_EXPIRED": pPassowrdExpired,
"P_PASSWORD_EXPIRED_MSG": pPasswordExpiredMsg,
"P_MOBILE_NUMBER": pMobileNumber,
"P_EMAIL_ADDRESS": pEmailAddress,
"P_LEGISLATION_CODE": pLegislationCode,
"LogInTokenID": logInTokenId,
};
}

@ -76,10 +76,10 @@ class PostParamsModel {
return data;
}
// setLogInTokenID(String? token) => logInTokenID = token;
// set setLogInTokenID(String? token) => logInTokenID = token;
String? _LogInTokenID;
String? get getLogInTokenID => _LogInTokenID;
String? get getLogInTokenID => _LogInTokenID ?? logInTokenID;
set setLogInTokenID(String? value) {
logInTokenID = value;

@ -17,6 +17,7 @@ import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/basic_member_information_model.dart';
import 'package:mohem_flutter_app/models/check_activation_code_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_mobile_login_info_list_model.dart';
import 'package:mohem_flutter_app/ui/dialogs/id/business_card_dialog.dart';
@ -369,10 +370,10 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
Future<void> performDirectApiCall(String _title, String _icon, int _flag, String value, TextEditingController? _pinPutController, {bool isDirectLogin = false}) async {
try {
GenericResponseModel? genericResponseModel = await LoginApiClient().checkActivationCode(true, AppState().memberLoginList?.pMobileNumber, value, AppState().getUserName);
GenericResponseModel? genericResponseModel1 = await LoginApiClient().insertMobileLoginInfoNEW(
CheckActivationCodeModel? genericResponseModel = await LoginApiClient().checkActivationCode(true, AppState().memberLoginList?.pMobileNumber, value, AppState().getUserName);
await LoginApiClient().insertMobileLoginInfoNEW(
AppState().memberLoginList?.pEmailAddress ?? "",
genericResponseModel?.pSESSIONID ?? 0,
genericResponseModel?.pSessionId ?? 0,
genericResponseModel?.memberInformationList![0].eMPLOYEENAME ?? "",
_flag,
AppState().memberLoginList?.pMobileNumber ?? "",

@ -16,6 +16,7 @@ import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/basic_member_information_model.dart';
import 'package:mohem_flutter_app/models/check_activation_code_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/models/privilege_list_model.dart';
@ -576,7 +577,7 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
width: 38,
color: isDisable ? MyColors.darkTextColor.withOpacity(0.7) : null,
),
_title.toText16(height: 20/16)
_title.toText16(height: 20 / 16)
],
),
),
@ -624,34 +625,34 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
(value, TextEditingController _pinPutController) async {
Utils.showLoading(context);
//try {
GenericResponseModel? genericResponseModel = await LoginApiClient().checkActivationCode(true, AppState().memberLoginList?.pMobileNumber, value, AppState().getUserName);
GenericResponseModel? genericResponseModel1 = await LoginApiClient().insertMobileLoginInfoNEW(
AppState().memberLoginList?.pEmailAddress ?? "",
genericResponseModel?.pSESSIONID ?? 0,
genericResponseModel?.memberInformationList![0].eMPLOYEENAME ?? "",
_flag,
AppState().memberLoginList?.pMobileNumber ?? "",
AppState().getUserName!,
AppState().getIsHuawei ? AppState().getHuaweiPushToken : firebaseToken!,
Platform.isAndroid ? "android" : "ios");
if (genericResponseModel?.errorMessage != null) {
Utils.showToast(genericResponseModel?.errorMessage ?? "");
} else {
AppState().setPrivilegeListModel = genericResponseModel!.privilegeList ?? [];
AppState().setMemberInformationListModel = genericResponseModel.memberInformationList?.first;
MemberInformationListModel.saveToPrefs(genericResponseModel.memberInformationList ?? []);
PrivilegeListModel.saveToPrefs(genericResponseModel.privilegeList ?? []);
AppState().setMohemmWifiSSID = genericResponseModel.mohemmWifiSSID;
AppState().setMohemmWifiPassword = genericResponseModel.mohemmWifiPassword;
AppState().setMohemmWifiPassword = genericResponseModel.mohemmWifiPassword;
Utils.saveStringFromPrefs(SharedPrefsConsts.username, AppState().getUserName!);
Utils.saveStringFromPrefs(SharedPrefsConsts.password, AppState().password!);
Utils.saveStringFromPrefs(SharedPrefsConsts.mohemmWifiSSID, genericResponseModel.mohemmWifiSSID!);
Utils.saveStringFromPrefs(SharedPrefsConsts.mohemmWifiPassword, genericResponseModel.mohemmWifiPassword!);
}
Utils.hideLoading(context);
Navigator.pop(context);
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.dashboard, (Route<dynamic> route) => false);
CheckActivationCodeModel? genericResponseModel = await LoginApiClient().checkActivationCode(true, AppState().memberLoginList?.pMobileNumber, value, AppState().getUserName);
await LoginApiClient().insertMobileLoginInfoNEW(
AppState().memberLoginList?.pEmailAddress ?? "",
genericResponseModel?.pSessionId ?? 0,
genericResponseModel?.memberInformationList![0].eMPLOYEENAME ?? "",
_flag,
AppState().memberLoginList?.pMobileNumber ?? "",
AppState().getUserName!,
AppState().getIsHuawei ? AppState().getHuaweiPushToken : firebaseToken!,
Platform.isAndroid ? "android" : "ios");
if (genericResponseModel?.errorMessage != null) {
Utils.showToast(genericResponseModel?.errorMessage ?? "");
} else {
AppState().setPrivilegeListModel = genericResponseModel!.privilegeList ?? [];
AppState().setMemberInformationListModel = genericResponseModel.memberInformationList?.first;
MemberInformationListModel.saveToPrefs(genericResponseModel.memberInformationList ?? []);
PrivilegeListModel.saveToPrefs(genericResponseModel.privilegeList ?? []);
AppState().setMohemmWifiSSID = genericResponseModel.mohemmWifiSsid;
AppState().setMohemmWifiPassword = genericResponseModel.mohemmWifiPassword;
AppState().setMohemmWifiPassword = genericResponseModel.mohemmWifiPassword;
Utils.saveStringFromPrefs(SharedPrefsConsts.username, AppState().getUserName!);
Utils.saveStringFromPrefs(SharedPrefsConsts.password, AppState().password!);
Utils.saveStringFromPrefs(SharedPrefsConsts.mohemmWifiSSID, genericResponseModel.mohemmWifiSsid!);
Utils.saveStringFromPrefs(SharedPrefsConsts.mohemmWifiPassword, genericResponseModel.mohemmWifiPassword!);
}
Utils.hideLoading(context);
Navigator.pop(context);
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.dashboard, (Route<dynamic> route) => false);
// } catch (ex) {
// print(ex);
// _pinPutController.clear();
@ -678,7 +679,7 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
).displayDialog(context);
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
Utils.handleException(ex, context, null);
}
}
//
@ -692,5 +693,4 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
// // isLoading = isTrue;
// });
// }
}

Loading…
Cancel
Save