94 lines
2.8 KiB
Dart
94 lines
2.8 KiB
Dart
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<void> 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<void> 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<void> 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.');
|
|
}
|
|
}
|
|
|
|
|
|
}
|