import 'package:cheminova/screens/authentication/controller/auth_service.dart'; import 'package:cheminova/screens/home_screen.dart'; import 'package:cheminova/services/api_service.dart'; import 'package:cheminova/utils/show_snackbar.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../../../notification_services.dart'; import '../../../utils/api_urls.dart'; class AuthController extends GetxController { final authService = AuthService(); final _apiClient = ApiService(); TextEditingController emailController = TextEditingController(); TextEditingController passwordController = TextEditingController(); TextEditingController phoneController = TextEditingController(); TextEditingController currentpassController = TextEditingController(); TextEditingController newpassController = TextEditingController(); TextEditingController confirmpassController = TextEditingController(); RxBool isLoading = false.obs; Future login() async { isLoading.value = true; final response = await authService.login({ 'email': emailController.text, 'password': passwordController.text, }); isLoading.value = false; update(); if (response != null) { final fcmToken = await NotificationServices().getDeviceToken(); print('fcmToken: $fcmToken'); await _apiClient.post(ApiUrls.fcmUrl, data: {'fcmToken': fcmToken}); showSnackbar("Your Successfully logged In!"); Get.offAll(() => const HomeScreen()); } else if(response == null){ showSnackbar("Please Enter Valid Email or Password"); } } Future forgotpass() async{ isLoading.value = true; final response = await authService.forgotPassword( { 'email': emailController.text, } ); isLoading.value = false; update(); if(response != null){ showSnackbar("Email sent successfully"); } } Future changePassword() async { isLoading.value = true; SharedPreferences prefs = await SharedPreferences.getInstance(); String? token = prefs.getString('token'); if (token != null) { final response = await authService.changePassword( { 'oldPassword': currentpassController.text, 'newPassword': newpassController.text, 'confirmPassword': confirmpassController.text, }, token: token, // Pass the token here ); print("tokemn ,$token"); isLoading.value = false; update(); if (response != null) { Get.snackbar('Success', 'Password changed successfully'); } else { Get.snackbar('Error', 'Failed to change password'); } } else { isLoading.value = false; update(); Get.snackbar('Error', 'Token not found. Please login again.'); } } }