first step from models

auth_refactor
Elham Rababah 5 years ago
parent 7af300d455
commit 333d1e3f50

@ -322,4 +322,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69
COCOAPODS: 1.10.1
COCOAPODS: 1.10.0.rc.1

@ -0,0 +1,113 @@
class NewLoginInformationModel {
int doctorID;
List<ListMemberInformation> listMemberInformation;
String logInTokenID;
String mobileNumber;
Null sELECTDeviceIMEIbyIMEIList;
int userID;
String zipCode;
bool isActiveCode;
bool isSMSSent;
NewLoginInformationModel(
{this.doctorID,
this.listMemberInformation,
this.logInTokenID,
this.mobileNumber,
this.sELECTDeviceIMEIbyIMEIList,
this.userID,
this.zipCode,
this.isActiveCode,
this.isSMSSent});
NewLoginInformationModel.fromJson(Map<String, dynamic> json) {
doctorID = json['DoctorID'];
if (json['List_MemberInformation'] != null) {
listMemberInformation = new List<ListMemberInformation>();
json['List_MemberInformation'].forEach((v) {
listMemberInformation.add(new ListMemberInformation.fromJson(v));
});
}
logInTokenID = json['LogInTokenID'];
mobileNumber = json['MobileNumber'];
sELECTDeviceIMEIbyIMEIList = json['SELECTDeviceIMEIbyIMEI_List'];
userID = json['UserID'];
zipCode = json['ZipCode'];
isActiveCode = json['isActiveCode'];
isSMSSent = json['isSMSSent'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DoctorID'] = this.doctorID;
if (this.listMemberInformation != null) {
data['List_MemberInformation'] =
this.listMemberInformation.map((v) => v.toJson()).toList();
}
data['LogInTokenID'] = this.logInTokenID;
data['MobileNumber'] = this.mobileNumber;
data['SELECTDeviceIMEIbyIMEI_List'] = this.sELECTDeviceIMEIbyIMEIList;
data['UserID'] = this.userID;
data['ZipCode'] = this.zipCode;
data['isActiveCode'] = this.isActiveCode;
data['isSMSSent'] = this.isSMSSent;
return data;
}
}
class ListMemberInformation {
Null setupID;
int memberID;
String memberName;
Null memberNameN;
String preferredLang;
String pIN;
String saltHash;
int referenceID;
int employeeID;
int roleID;
int projectid;
ListMemberInformation(
{this.setupID,
this.memberID,
this.memberName,
this.memberNameN,
this.preferredLang,
this.pIN,
this.saltHash,
this.referenceID,
this.employeeID,
this.roleID,
this.projectid});
ListMemberInformation.fromJson(Map<String, dynamic> json) {
setupID = json['SetupID'];
memberID = json['MemberID'];
memberName = json['MemberName'];
memberNameN = json['MemberNameN'];
preferredLang = json['PreferredLang'];
pIN = json['PIN'];
saltHash = json['SaltHash'];
referenceID = json['ReferenceID'];
employeeID = json['EmployeeID'];
roleID = json['RoleID'];
projectid = json['projectid'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['SetupID'] = this.setupID;
data['MemberID'] = this.memberID;
data['MemberName'] = this.memberName;
data['MemberNameN'] = this.memberNameN;
data['PreferredLang'] = this.preferredLang;
data['PIN'] = this.pIN;
data['SaltHash'] = this.saltHash;
data['ReferenceID'] = this.referenceID;
data['EmployeeID'] = this.employeeID;
data['RoleID'] = this.roleID;
data['projectid'] = this.projectid;
return data;
}
}

@ -0,0 +1,29 @@
class SendActivationCodeForDoctorAppResponseModel {
String logInTokenID;
String verificationCode;
String vidaAuthTokenID;
String vidaRefreshTokenID;
SendActivationCodeForDoctorAppResponseModel(
{this.logInTokenID,
this.verificationCode,
this.vidaAuthTokenID,
this.vidaRefreshTokenID});
SendActivationCodeForDoctorAppResponseModel.fromJson(
Map<String, dynamic> json) {
logInTokenID = json['LogInTokenID'];
verificationCode = json['VerificationCode'];
vidaAuthTokenID = json['VidaAuthTokenID'];
vidaRefreshTokenID = json['VidaRefreshTokenID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['LogInTokenID'] = this.logInTokenID;
data['VerificationCode'] = this.verificationCode;
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
data['VidaRefreshTokenID'] = this.vidaRefreshTokenID;
return data;
}
}

@ -1,11 +1,13 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/imei_details.dart';
import 'package:doctor_app_flutter/core/model/insert_imei_model.dart';
import 'package:doctor_app_flutter/core/model/auth/activation_Code_req_model.dart';
import 'package:doctor_app_flutter/core/model/auth/imei_details.dart';
import 'package:doctor_app_flutter/core/model/auth/insert_imei_model.dart';
import 'package:doctor_app_flutter/core/model/auth/new_login_information_response_model.dart';
import 'package:doctor_app_flutter/core/model/auth/send_activation_code_for_doctor_app_response_model.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/core/viewModel/doctor_profile_view_model.dart';
import 'package:doctor_app_flutter/models/auth/activation_Code_req_model.dart';
import 'package:doctor_app_flutter/models/auth/activation_code_for_verification_screen_model.dart';
import 'package:doctor_app_flutter/models/auth/check_activation_code_request_model.dart';
import 'package:doctor_app_flutter/core/model/auth/activation_code_for_verification_screen_model.dart';
import 'package:doctor_app_flutter/core/model/auth/check_activation_code_request_model.dart';
import 'package:doctor_app_flutter/models/doctor/clinic_model.dart';
import 'package:doctor_app_flutter/models/doctor/user_model.dart';
import 'package:provider/provider.dart';
@ -14,15 +16,15 @@ class AuthenticationService extends BaseService {
List<GetIMEIDetailsModel> _imeiDetails = [];
List<GetIMEIDetailsModel> get dashboardItemsList => _imeiDetails;
//TODO Change this to models
Map<String, dynamic> _loginInfo = {};
Map<String, dynamic> get loginInfo => _loginInfo;
NewLoginInformationModel _loginInfo = NewLoginInformationModel();
NewLoginInformationModel get loginInfo => _loginInfo;
Map<String, dynamic> _activationCodeVerificationScreenRes = {};
Map<String, dynamic> get activationCodeVerificationScreenRes => _activationCodeVerificationScreenRes;
Map<String, dynamic> _activationCodeForDoctorAppRes = {};
SendActivationCodeForDoctorAppResponseModel _activationCodeForDoctorAppRes = SendActivationCodeForDoctorAppResponseModel();
Map<String, dynamic> get activationCodeForDoctorAppRes => _activationCodeForDoctorAppRes;
SendActivationCodeForDoctorAppResponseModel get activationCodeForDoctorAppRes => _activationCodeForDoctorAppRes;
Map<String, dynamic> _checkActivationCodeForDoctorAppRes = {};
Map<String, dynamic> get checkActivationCodeForDoctorAppRes => _checkActivationCodeForDoctorAppRes;
@ -31,7 +33,6 @@ class AuthenticationService extends BaseService {
Map<String, dynamic> get insertDeviceImeiRes => _insertDeviceImeiRes;
Future selectDeviceImei(imei) async {
try {
// dynamic localRes;
await baseAppClient.post(SELECT_DEVICE_IMEI,
onSuccess: (dynamic response, int statusCode) {
_imeiDetails = [];
@ -42,7 +43,6 @@ class AuthenticationService extends BaseService {
hasError = true;
super.error = error;
}, body: {"IMEI": imei, "TokenID": "@dm!n"});
//return Future.value(localRes);
} catch (error) {
hasError = true;
super.error = error;
@ -51,11 +51,11 @@ class AuthenticationService extends BaseService {
Future login(UserModel userInfo) async {
hasError = false;
_loginInfo = {};
_loginInfo = NewLoginInformationModel();
try {
await baseAppClient.post(LOGIN_URL,
onSuccess: (dynamic response, int statusCode) {
_loginInfo = response;
_loginInfo = NewLoginInformationModel.fromJson(response);
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
@ -87,11 +87,11 @@ class AuthenticationService extends BaseService {
Future sendActivationCodeForDoctorApp(ActivationCodeModel activationCodeModel)async {
hasError = false;
_activationCodeForDoctorAppRes = {};
_activationCodeForDoctorAppRes = SendActivationCodeForDoctorAppResponseModel();
try {
await baseAppClient.post(SEND_ACTIVATION_CODE_FOR_DOCTOR_APP,
onSuccess: (dynamic response, int statusCode) {
_activationCodeForDoctorAppRes = response;
_activationCodeForDoctorAppRes = SendActivationCodeForDoctorAppResponseModel.fromJson(response);
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;

@ -2,17 +2,19 @@ import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/enum/auth_method_types.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/auth/activation_Code_req_model.dart';
import 'package:doctor_app_flutter/core/model/auth/insert_imei_model.dart';
import 'package:doctor_app_flutter/core/model/auth/new_login_information_response_model.dart';
import 'package:doctor_app_flutter/core/model/auth/send_activation_code_for_doctor_app_response_model.dart';
import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_request_model.dart';
import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_response_model.dart';
import 'package:doctor_app_flutter/core/model/imei_details.dart';
import 'package:doctor_app_flutter/core/model/insert_imei_model.dart';
import 'package:doctor_app_flutter/core/model/auth/imei_details.dart';
import 'package:doctor_app_flutter/core/service/authentication_service.dart';
import 'package:doctor_app_flutter/core/service/hospitals/hospitals_service.dart';
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
import 'package:doctor_app_flutter/locator.dart';
import 'package:doctor_app_flutter/models/auth/activation_Code_req_model.dart';
import 'package:doctor_app_flutter/models/auth/activation_code_for_verification_screen_model.dart';
import 'package:doctor_app_flutter/models/auth/check_activation_code_request_model.dart';
import 'package:doctor_app_flutter/core/model/auth/activation_code_for_verification_screen_model.dart';
import 'package:doctor_app_flutter/core/model/auth/check_activation_code_request_model.dart';
import 'package:doctor_app_flutter/models/doctor/user_model.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:intl/intl.dart';
@ -23,12 +25,12 @@ class AuthenticationViewModel extends BaseViewModel {
List<GetIMEIDetailsModel> get imeiDetails => _authService.dashboardItemsList;
List<GetHospitalsResponseModel> get hospitals => _hospitalsService.hospitals;
get loginInfo => _authService.loginInfo;
NewLoginInformationModel get loginInfo => _authService.loginInfo;
get activationCodeVerificationScreenRes => _authService.activationCodeVerificationScreenRes;
get activationCodeForDoctorAppRes => _authService.activationCodeForDoctorAppRes;
SendActivationCodeForDoctorAppResponseModel get activationCodeForDoctorAppRes => _authService.activationCodeForDoctorAppRes;
get checkActivationCodeForDoctorAppRes => _authService.checkActivationCodeForDoctorAppRes;
var loggedUser;
NewLoginInformationModel loggedUser;
GetIMEIDetailsModel user;
Future selectDeviceImei(imei) async {
setState(ViewState.Busy);
@ -115,9 +117,9 @@ class AuthenticationViewModel extends BaseViewModel {
int projectID = await sharedPref.getInt(PROJECT_ID);
ActivationCodeModel activationCodeModel = ActivationCodeModel(
facilityId: projectID,
memberID: loggedUser['List_MemberInformation'][0]['MemberID'],
zipCode: loggedUser['ZipCode'],
mobileNumber: loggedUser['MobileNumber'],
memberID: loggedUser.listMemberInformation[0].memberID,
zipCode: loggedUser.zipCode,
mobileNumber: loggedUser.mobileNumber,
otpSendType: authMethodType.getTypeIdService().toString(),
password: password);
await _authService.sendActivationCodeForDoctorApp(activationCodeModel);
@ -133,9 +135,9 @@ class AuthenticationViewModel extends BaseViewModel {
CheckActivationCodeRequestModel checkActivationCodeForDoctorApp =
new CheckActivationCodeRequestModel(
zipCode:
loggedUser != null ? loggedUser['ZipCode'] :user.zipCode,
loggedUser != null ? loggedUser.zipCode :user.zipCode,
mobileNumber:
loggedUser != null ? loggedUser['MobileNumber'] : user.mobile,
loggedUser != null ? loggedUser.mobileNumber : user.mobile,
projectID: await sharedPref.getInt(PROJECT_ID) != null
? await sharedPref.getInt(PROJECT_ID)
: user.projectID,
@ -208,7 +210,11 @@ class AuthenticationViewModel extends BaseViewModel {
getInitUserInfo()async{
setState(ViewState.Busy);
loggedUser = await sharedPref.getObj(LOGGED_IN_USER);
var localLoggedUser = await sharedPref.getObj(LOGGED_IN_USER);
if(localLoggedUser!= null) {
loggedUser = NewLoginInformationModel.fromJson(localLoggedUser);
}
var lastLogin = await sharedPref.getObj(LAST_LOGIN_USER);
if (lastLogin != null) {
user = GetIMEIDetailsModel.fromJson(lastLogin);

@ -10,10 +10,10 @@ import 'package:doctor_app_flutter/core/service/authentication_service.dart';
import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/doctor/user_model.dart';
import 'package:doctor_app_flutter/screens/auth/verification_methods_screen.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/screens/auth/verification_methods_screen.dart';
import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
@ -463,25 +463,24 @@ class _LoginsreenState extends State<Loginsreen> {
Helpers.showErrorToast(model.error);
} else {
if (model.loginInfo['MessageStatus'] == 1) {
saveObjToString(LOGGED_IN_USER, model.loginInfo);
sharedPref.remove(LAST_LOGIN_USER);
sharedPref.setString(TOKEN, model.loginInfo['LogInTokenID']);
GifLoaderDialogUtils.hideDialog(context);
saveObjToString(LOGGED_IN_USER, model.loginInfo);
sharedPref.remove(LAST_LOGIN_USER);
sharedPref.setString(TOKEN, model.loginInfo.logInTokenID);
GifLoaderDialogUtils.hideDialog(context);
Navigator.of(context).pushReplacement(MaterialPageRoute(
builder: (BuildContext context) =>
VerificationMethodsScreen(
password: userInfo.password,
)));
}
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (BuildContext context) => VerificationMethodsScreen(
password: userInfo.password,
),
),
);
}
}
}
Future<void> setSharedPref(key, value) async {
sharedPref.setString(key, value).then((success) {
print("sharedPref.setString" + success.toString());
});
}

@ -3,12 +3,11 @@ import 'dart:io' show Platform;
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/enum/auth_method_types.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/imei_details.dart';
import 'package:doctor_app_flutter/core/model/auth/imei_details.dart';
import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/auth/activation_Code_req_model.dart';
import 'package:doctor_app_flutter/models/auth/activation_code_for_verification_screen_model.dart';
import 'package:doctor_app_flutter/models/auth/check_activation_code_request_model.dart';
import 'package:doctor_app_flutter/core/model/auth/activation_code_for_verification_screen_model.dart';
import 'package:doctor_app_flutter/core/model/auth/check_activation_code_request_model.dart';
import 'package:doctor_app_flutter/models/doctor/clinic_model.dart';
import 'package:doctor_app_flutter/models/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/models/doctor/profile_req_Model.dart';
@ -384,13 +383,13 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
} else {
// TODO move it model
print("VerificationCode : " +
model.activationCodeForDoctorAppRes["VerificationCode"]);
model.activationCodeForDoctorAppRes.verificationCode);
sharedPref.setString(VIDA_AUTH_TOKEN_ID,
model.activationCodeForDoctorAppRes["VidaAuthTokenID"]);
model.activationCodeForDoctorAppRes.vidaAuthTokenID);
sharedPref.setString(VIDA_REFRESH_TOKEN_ID,
model.activationCodeForDoctorAppRes["VidaRefreshTokenID"]);
model.activationCodeForDoctorAppRes.vidaRefreshTokenID);
sharedPref.setString(LOGIN_TOKEN_ID,
model.activationCodeForDoctorAppRes["LogInTokenID"]);
model.activationCodeForDoctorAppRes.logInTokenID);
sharedPref.setString(PASSWORD, widget.password);
GifLoaderDialogUtils.hideDialog(context);
this.startSMSService(authMethodType);
@ -475,7 +474,7 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
new SMSOTP(
context,
type,
model.loggedUser != null ? model.loggedUser['MobileNumber'] : model.user.mobile,
model.loggedUser != null ? model.loggedUser.mobileNumber : model.user.mobile,
(value) {
showDialog(
context: context,
@ -581,7 +580,6 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
if (res['MessageStatus'] == 1) {
loginProcessCompleted(res['DoctorProfileList'][0]);
} else {
// changeLoadingState(false);
Helpers.showErrorToast(res['ErrorEndUserMessage']);
}
}).catchError((err) {

Loading…
Cancel
Save