From ca7c923429d36cd53358bc648ded9cb09eba7bf9 Mon Sep 17 00:00:00 2001 From: "mirza.shafique" Date: Sun, 20 Nov 2022 09:23:41 +0300 Subject: [PATCH] Backend Structure 2.0 --- lib/api_repo/login_api_repo.dart | 42 ++++++++++++++++++- lib/app_state/app_state.dart | 8 ++-- lib/model/base/generic_response_model.dart | 8 ++-- lib/model/base/post_params_model.dart | 1 - ...i_details.dart => imei_details_model.dart} | 0 lib/model/login/project_info_model.dart | 23 ++++++++++ lib/ui/login/splash_page.dart | 2 + 7 files changed, 75 insertions(+), 9 deletions(-) rename lib/model/login/{imei_details.dart => imei_details_model.dart} (100%) create mode 100644 lib/model/login/project_info_model.dart diff --git a/lib/api_repo/login_api_repo.dart b/lib/api_repo/login_api_repo.dart index da136a1..d246bff 100644 --- a/lib/api_repo/login_api_repo.dart +++ b/lib/api_repo/login_api_repo.dart @@ -1,15 +1,20 @@ import 'package:hmg_nurses/exceptions/api_exception.dart'; import 'package:hmg_nurses/main.dart'; +import 'package:hmg_nurses/model/login/project_info_model.dart'; import 'package:hmg_nurses/services/api_client.dart'; import 'package:hmg_nurses/classes/consts.dart'; import 'package:hmg_nurses/model/base/generic_response_model.dart'; -import 'package:hmg_nurses/model/login/imei_details.dart'; +import 'package:hmg_nurses/model/login/imei_details_model.dart'; import 'package:injector/injector.dart'; import '../services/firebase_service.dart'; abstract class ILoginApiRepo { Future> getDeviceInfoByIMEI(); + + Future> getProjectInfo(String userId); + + Future memberLogin(String userId, String password, int projectId); } class LoginApiRepo implements ILoginApiRepo { @@ -23,7 +28,6 @@ class LoginApiRepo implements ILoginApiRepo { Map postParams = {}; postParams.addAll(appState.postParamsJson); - postParams["stamp"] = DateTime.now().toIso8601String(); postParams["IMEI"] = token; GenericResponseModel response; try { @@ -33,4 +37,38 @@ class LoginApiRepo implements ILoginApiRepo { } return response.listDoctorDeviceDetails ?? []; } + + @override + Future> getProjectInfo(String userId) async { + String url = "${ApiConsts.baseUrlServices}DoctorApplication.svc/REST/GetProjectInfo"; + + Map postParams = {}; + postParams.addAll(appState.postParamsJson); + postParams["MemberID"] = "13777"; + GenericResponseModel response; + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response.projectInfo ?? []; + } + + @override + Future memberLogin(String userId, String password, int projectId) async { + String url = "${ApiConsts.baseUrlServices}Sentry.svc/REST/MemberLogIN_New"; + + Map postParams = {}; + postParams.addAll(appState.postParamsJson); + postParams["UserID"] = userId; + postParams["Password"] = password; + postParams["ProjectID"] = projectId; + GenericResponseModel response; + try { + response = await Injector.appInstance.get().postJsonForObject((json) => GenericResponseModel.fromJson(json), url, postParams); + } catch (e) { + rethrow; + } + return response; + } } diff --git a/lib/app_state/app_state.dart b/lib/app_state/app_state.dart index 4181ea5..9014d77 100644 --- a/lib/app_state/app_state.dart +++ b/lib/app_state/app_state.dart @@ -33,14 +33,13 @@ class AppState { String? get getForgetPasswordTokenID => forgetPasswordTokenID; final PostParamsModel _postParamsInitConfig = PostParamsModel( - imei: "", tokenID: "@dm!n", languageID: 2, stamp: "", iPAdress: "9.9.9.9", versionID: 8.3, channel: 9, - sessionID: "", + sessionID: "BlUSkYymTt", isLoginForDoctorApp: true, patientOutSA: false, vidaAuthTokenID: null, @@ -59,7 +58,10 @@ class AppState { PostParamsModel? get postParamsObject => _postParams; // Map get postParamsJson => isLogged ? (_postParams?.toJsonAfterLogin() ?? {}) : (_postParams?.toJson() ?? {}); - Map get postParamsJson => (_postParams?.toJson() ?? {}); + Map get postParamsJson{ + _postParams!.stamp=DateTime.now().toIso8601String(); + return _postParams?.toJson() ?? {}; + } void setPostParamsModel(PostParamsModel _postParams) { this._postParams = _postParams; diff --git a/lib/model/base/generic_response_model.dart b/lib/model/base/generic_response_model.dart index d498008..d7d14f2 100644 --- a/lib/model/base/generic_response_model.dart +++ b/lib/model/base/generic_response_model.dart @@ -4,7 +4,9 @@ import 'dart:convert'; -import 'package:hmg_nurses/model/login/imei_details.dart'; +import 'package:hmg_nurses/model/login/imei_details_model.dart'; + +import '../login/project_info_model.dart'; GenericResponseModel genericResponseModelFromJson(String str) => GenericResponseModel.fromJson(json.decode(str)); @@ -332,7 +334,7 @@ class GenericResponseModel { final dynamic progressNoteList; final dynamic progressNotesAuditLogList; final int? projectId; - final dynamic projectInfo; + final List? projectInfo; final dynamic referralList; final bool? requestCompleted; final dynamic requisitionResponse; @@ -514,7 +516,7 @@ class GenericResponseModel { progressNoteList: json["ProgressNoteList"], progressNotesAuditLogList: json["ProgressNotesAuditLogList"], projectId: json["ProjectID"] == null ? null : json["ProjectID"], - projectInfo: json["ProjectInfo"], + projectInfo: json["ProjectInfo"] == null ? null : List.from(json["ProjectInfo"].map((x) => ProjectInfoModel.fromJson(x))), referralList: json["ReferralList"], requestCompleted: json["RequestCompleted"] == null ? null : json["RequestCompleted"], requisitionResponse: json["RequisitionResponse"], diff --git a/lib/model/base/post_params_model.dart b/lib/model/base/post_params_model.dart index 839ce4b..e1844bd 100644 --- a/lib/model/base/post_params_model.dart +++ b/lib/model/base/post_params_model.dart @@ -47,7 +47,6 @@ class PostParamsModel { Map toJson() { Map data = new Map(); - data['IMEI'] = this.imei; data['TokenID'] = this.tokenID; data['LanguageID'] = this.languageID; data['stamp'] = this.stamp; diff --git a/lib/model/login/imei_details.dart b/lib/model/login/imei_details_model.dart similarity index 100% rename from lib/model/login/imei_details.dart rename to lib/model/login/imei_details_model.dart diff --git a/lib/model/login/project_info_model.dart b/lib/model/login/project_info_model.dart new file mode 100644 index 0000000..c8168f0 --- /dev/null +++ b/lib/model/login/project_info_model.dart @@ -0,0 +1,23 @@ +class ProjectInfoModel { + ProjectInfoModel({ + this.facilityGroupId, + this.facilityId, + this.facilityName, + }); + + final String? facilityGroupId; + final int? facilityId; + final String? facilityName; + + factory ProjectInfoModel.fromJson(Map json) => ProjectInfoModel( + facilityGroupId: json["facilityGroupId"] == null ? null : json["facilityGroupId"], + facilityId: json["facilityId"] == null ? null : json["facilityId"], + facilityName: json["facilityName"] == null ? null : json["facilityName"], + ); + + Map toJson() => { + "facilityGroupId": facilityGroupId == null ? null : facilityGroupId, + "facilityId": facilityId == null ? null : facilityId, + "facilityName": facilityName == null ? null : facilityName, + }; +} diff --git a/lib/ui/login/splash_page.dart b/lib/ui/login/splash_page.dart index 8f77303..884417d 100644 --- a/lib/ui/login/splash_page.dart +++ b/lib/ui/login/splash_page.dart @@ -22,6 +22,8 @@ class _SplashPageState extends State { getData() async { try { await _loginApiRepo.getDeviceInfoByIMEI(); + await _loginApiRepo.getProjectInfo("userId"); + await _loginApiRepo.memberLogin("13777", "Rr123456", 12); } catch (e) { Utils.handleException(e, context, (msg) { Utils.confirmDialog(context, msg);