From bd309ae211b2df64b37977424957b94707726d71 Mon Sep 17 00:00:00 2001
From: Rakshitha Salian <rakshitha.salian@niveus.com>
Date: Fri, 31 May 2024 15:16:08 +0530
Subject: [PATCH] Integration of verify otp screen

---
 lib/controller/base_controller.dart                 |  3 +--
 lib/serverRequest/all_request.dart                  | 13 +++++++++++--
 .../loginScreen/controller/login_controller.dart    |  5 +++++
 lib/views/loginScreen/view/login_screen.dart        |  6 +++---
 .../verifyOTP/controller/verify_otp_controller.dart |  2 +-
 lib/views/verifyOTP/widgets/screen_header.dart      |  1 +
 6 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/lib/controller/base_controller.dart b/lib/controller/base_controller.dart
index 0059bb2..3eed81a 100644
--- a/lib/controller/base_controller.dart
+++ b/lib/controller/base_controller.dart
@@ -28,8 +28,7 @@ class BaseController extends GetxController with WidgetsBindingObserver {
 
   ///verifyOtp
   RxString generatedOtp="".obs;
-  //todo-Fetch the phone number from welcome screen
-  RxString userPhoneNumber="919945215727".obs;
+
 
 
 
diff --git a/lib/serverRequest/all_request.dart b/lib/serverRequest/all_request.dart
index a1934d7..f830717 100644
--- a/lib/serverRequest/all_request.dart
+++ b/lib/serverRequest/all_request.dart
@@ -8,6 +8,7 @@ import 'package:exide_crr/data/app_env.dart';
 import 'package:exide_crr/preferences/app_shared_preferences.dart';
 import 'package:exide_crr/serverRequest/app_exception.dart';
 import 'package:exide_crr/utils/custom_toast.dart';
+import 'package:exide_crr/views/loginScreen/controller/login_controller.dart';
 import 'package:fluttertoast/fluttertoast.dart';
 import 'package:get/get.dart';
 import 'package:get/get_core/src/get_main.dart';
@@ -16,6 +17,7 @@ import 'package:shared_preferences/shared_preferences.dart';
 
 import '../appLocalization/language_key.dart';
 import '../model/verifyOtp.dart';
+import '../routes/routes_name.dart';
 
 final httpClient = http.Client();
 
@@ -145,6 +147,12 @@ class AllHttpRequest {
   Future sendOtp() async {
     try {
       final baseController = Get.find<BaseController>();
+      final loginController = Get.find<LoginController>();
+
+      ///Get the phone number from login controller if null direct back to login screen
+      // if(loginController.dealerData["phone"]==null){
+      //   Get.back();
+      // }
 
       ///Locally generated 4 digit otp
       baseController.generatedOtp.value = Miscellaneous.generateOTP();
@@ -153,7 +161,7 @@ class AllHttpRequest {
       var smsContent='$smsData ${baseController.generatedOtp.value} -EXIDE';
 
       ///Set up POST request arguments
-      String url = '$baseUrlForSendOtp/sendsms?to=${baseController.userPhoneNumber}&from=ExideB&text=$smsContent';
+      String url = '$baseUrlForSendOtp/sendsms?to=${loginController.dealerData["phone"]}&from=ExideB&text=$smsContent';
       Map<String, String>? headers = {
         "Content-type": "application/json",
         "Authorization": "Bearer ${generatedAuth.token}",
@@ -162,7 +170,8 @@ class AllHttpRequest {
       var response = await http.post(uri, headers: headers);
 
       if (response.statusCode == 200) {
-      ///If success do nothing
+        Get.toNamed(RoutesName.verifyOtp);
+      ///If success redirect to verify OTP screen
       } else {
         Fluttertoast.showToast(msg: apiError.tr);
         log("Error generate auth--${response.statusCode}");
diff --git a/lib/views/loginScreen/controller/login_controller.dart b/lib/views/loginScreen/controller/login_controller.dart
index 9845166..93a6f30 100644
--- a/lib/views/loginScreen/controller/login_controller.dart
+++ b/lib/views/loginScreen/controller/login_controller.dart
@@ -8,6 +8,7 @@ import 'package:get/get_rx/src/rx_types/rx_types.dart';
 import 'package:get/get_state_manager/src/simple/get_controllers.dart';
 
 import '../../../model/condition_data.dart';
+import '../../../serverRequest/all_request.dart';
 
 class LoginController extends GetxController {
   FirebaseService firebaseService = FirebaseService.instance;
@@ -38,4 +39,8 @@ class LoginController extends GetxController {
       isLoginLoading.value = false;
     }
   }
+
+  onClickHandler(){
+    AllHttpRequest().generateAuth();
+  }
 }
diff --git a/lib/views/loginScreen/view/login_screen.dart b/lib/views/loginScreen/view/login_screen.dart
index 9908d83..80ebefd 100644
--- a/lib/views/loginScreen/view/login_screen.dart
+++ b/lib/views/loginScreen/view/login_screen.dart
@@ -14,6 +14,8 @@ import 'package:flutter_svg/flutter_svg.dart';
 import 'package:get/get.dart';
 import 'package:get/get_utils/src/extensions/internacionalization.dart';
 
+import '../../../routes/routes_name.dart';
+
 class LoginScreen extends StatefulWidget {
   const LoginScreen({super.key});
 
@@ -103,9 +105,7 @@ class _LoginScreenState extends State<LoginScreen> {
           Obx(
             () => CustomButton(
               buttonName: next.tr,
-              onTap: () {
-                // Get.offNamed(RoutesName.loginScreen);
-              },
+              onTap: loginController.onClickHandler,
               activeBackgroundColor: AppColor.darkRed,
               width: Get.width,
               isActive: loginController.dealerData["phone"] != null,
diff --git a/lib/views/verifyOTP/controller/verify_otp_controller.dart b/lib/views/verifyOTP/controller/verify_otp_controller.dart
index 475862f..1e8af1e 100644
--- a/lib/views/verifyOTP/controller/verify_otp_controller.dart
+++ b/lib/views/verifyOTP/controller/verify_otp_controller.dart
@@ -20,7 +20,7 @@ class VerifyOtpController extends GetxController {
   @override
   void onInit() {
     startTimer();
-    AllHttpRequest().generateAuth();
+
     super.onInit();
   }
 
diff --git a/lib/views/verifyOTP/widgets/screen_header.dart b/lib/views/verifyOTP/widgets/screen_header.dart
index 38b3d2b..3275341 100644
--- a/lib/views/verifyOTP/widgets/screen_header.dart
+++ b/lib/views/verifyOTP/widgets/screen_header.dart
@@ -6,6 +6,7 @@ import '../../../appLocalization/language_key.dart';
 import '../../../constants/image_constants.dart';
 import '../../../customWidget/app_text.dart';
 import '../../../res/app_color_text_size.dart';
+import '../../../routes/routes_name.dart';
 
 Widget screenHeader() {
   return Column(
-- 
GitLab