Files
Regroup/lib/Login/ViewModel/LoginApi.dart
2024-08-23 15:22:32 +05:30

187 lines
7.3 KiB
Dart

import 'package:get/get.dart';
import 'package:regroup/Common/api_urls.dart';
import 'package:regroup/Common/base_manager.dart';
import 'package:regroup/Common/controller/data/network/network_api.dart';
import 'package:regroup/Global.dart';
import 'package:regroup/Login/Model/LoginModel.dart';
import 'package:regroup/Main_Screens/Community/ViewModel/getmethod.dart';
import 'package:regroup/onboarding/Signup/view_model/getUserprofile.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:shared_preferences/shared_preferences.dart';
class LoginAPI {
Future<ResponseData> loginApi(var data) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
final response = await NetworkApiServices()
.postApi(data, ApiUrls.getlogin, optionalpar: true);
if (response.status == ResponseStatus.SUCCESS) {
String? accountype;
if (response.data['status'] == 'success') {
LoginModel loginObj = LoginModel.fromJson(response.data);
await prefs.setString('access-token', loginObj.data!.accessToken!);
await Communityallgetmethod().getLikeicons();
await prefs.setString(
'fullname', loginObj.data?.userData?.fullName ?? "");
await prefs.setString(
'username', loginObj.data?.userData?.userName ?? "");
await prefs.setString(
'email', loginObj.data?.userData?.emailAddress ?? "");
await prefs.setString(
'phone', loginObj.data?.userData?.phoneNumber ?? "");
token = loginObj.data!.accessToken;
emailid = loginObj.data?.userData?.emailAddress;
myusername = loginObj.data?.userData?.userName;
fullname = loginObj.data?.userData?.fullName;
phonenumber = loginObj.data?.userData?.phoneNumber;
await prefs.setString('accountTypefromLogin',
loginObj.data?.userData?.principalTypeXid.toString() ?? "");
globalAccountType =
loginObj.data?.userData?.principalTypeXid.toString();
await prefs.setString('accountTypeValue',
loginObj.data?.userData?.principalTypeXid.toString() ?? "");
print("token is ${loginObj.data!.accessToken!}");
if (loginObj.data?.userData?.isProfileUpdated == 0) {
accountype = loginObj.data?.userData?.principalTypeXid.toString();
if (accountype == "1") {
print('tell us individyal');
Get.toNamed(
RouteName.tellusindividualscreen,
// arguments: {
// 'pageroute' : "mainscreen"
// }
);
} else if (accountype == "2") {
print('tell us business');
Get.toNamed(
RouteName.tellusbusinessscreen,
// arguments: {
// 'pageroute' : "mainscreen"
// }
);
}
} else {
Get.toNamed(RouteName.mainscreen,arguments: 0);
}
} else {
return ResponseData<dynamic>(
response.data['message'], ResponseStatus.FAILED);
}
}
return response;
}
Future<ResponseData> storeGoogleSignin(var data) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
final response = await NetworkApiServices()
.postApi(data, ApiUrls.googlelogin, optionalpar: true);
if (response.status == ResponseStatus.SUCCESS) {
await prefs.setString('access-token', response.data['data']['token']);
await Communityallgetmethod().getLikeicons();
if (response.data['data']['is_account_type_updated'] == 3) {
return ResponseData<dynamic>(
"go-to-signin-via-oauth", ResponseStatus.SUCCESS,
data: response.data['data']['email']);
} else {
return ResponseData<dynamic>("go-to-login", ResponseStatus.SUCCESS);
}
}
return response;
}
Future<ResponseData> storeAppleSignin(var data,
{String? emailReceived}) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
final response = await NetworkApiServices()
.postApi(data, ApiUrls.applelogin, optionalpar: true);
if (response.status == ResponseStatus.SUCCESS) {
await prefs.setString('access-token', response.data['data']['token']);
await Communityallgetmethod().getLikeicons();
if (response.data['data']['is_account_type_updated'] == 3) {
Get.toNamed(RouteName.verifygoogleapplepage,
arguments: {"email": emailReceived});
return ResponseData<dynamic>(
"go-to-signin-via-oauth", ResponseStatus.SUCCESS);
} else {
await Getuserdetails().Getuser().then((value) {
if (getuserobj?.data?.userData?.isProfileUpdated == 0) {
String? accountype =
getuserobj?.data?.userData?.principalTypeXid.toString();
if (accountype == "1") {
Get.toNamed(RouteName.tellusindividualscreen,
arguments: {'pageroute': "mainscreen"});
} else if (accountype == "2") {
Get.toNamed(RouteName.tellusbusinessscreen,
arguments: {'pageroute': "mainscreen"});
}
} else {
Get.toNamed(RouteName.mainscreen, arguments: 0);
}
});
// Get.toNamed(RouteName.mainscreen);
return ResponseData<dynamic>("go-to-login", ResponseStatus.SUCCESS);
}
}
return response;
}
Future<ResponseData> storeFacebookSignin(var data,
{String? emailReceived}) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
final response = await NetworkApiServices()
.postApi(data, ApiUrls.facebooklogin, optionalpar: true);
if (response.status == ResponseStatus.SUCCESS) {
await prefs.setString('access-token', response.data['data']['token']);
await Communityallgetmethod().getLikeicons();
if (response.data['data']['is_account_type_updated'] == 3) {
Get.toNamed(RouteName.verifygoogleapplepage,
arguments: {"email": emailReceived});
return ResponseData<dynamic>(
"go-to-signin-via-oauth", ResponseStatus.SUCCESS);
} else {
// Get.toNamed(RouteName.mainscreen);
await Getuserdetails().Getuser().then((value) {
if (getuserobj?.data?.userData?.isProfileUpdated == 0) {
String? accountype =
getuserobj?.data?.userData?.principalTypeXid.toString();
if (accountype == "1") {
Get.toNamed(RouteName.tellusindividualscreen,
arguments: {'pageroute': "mainscreen"});
} else if (accountype == "2") {
Get.toNamed(RouteName.tellusbusinessscreen,
arguments: {'pageroute': "mainscreen"});
}
} else {
Get.toNamed(RouteName.mainscreen, arguments: 0);
}
});
return ResponseData<dynamic>("go-to-login", ResponseStatus.SUCCESS);
}
}
return response;
}
Future<ResponseData> storeUserDetailsWhenComingFromGoogleAppleSignin(
var data) async {
final response = await NetworkApiServices()
.postApi(data, ApiUrls.storeDetailsOfOAuth, optionalpar: false);
if (response.status == ResponseStatus.SUCCESS) {
return ResponseData<dynamic>(
response.data['message'], ResponseStatus.SUCCESS);
}
return response;
}
}