This repository has been archived on 2024-10-18. You can view files and clone it, but cannot push or open issues or pull requests.
ftc_patient_app/lib/web_services/auth_services.dart

131 lines
4.2 KiB
Dart

import '../ftc_mobile_app.dart';
class AuthService {
static final AuthService _instance = AuthService._constructor();
AuthService._constructor();
factory AuthService() {
return _instance;
}
final HttpRequestClient _httpClient = HttpRequestClient();
// final LocalStorageManager _sessionManagement = LocalStorageManager();
Future<dynamic> loginUser(
{required String email,
required String password,
bool isRememberMe = false}) async {
Map<String, dynamic> requestBody = {
"email": email,
"password": password,
"fcm_tokens": {
"token":
"fY6_DGfGQ06OW4BUVEsEwG:APA91bGUFza2uhaaR0miN2jtY0ut7RuA5ObleZvqv2X8KLOBgksmDmgc9sHDdea-DBvHmz1aUwX1uhkysk92x50WQCLHPDD1VwGX5ybKhUwVdq4aBfI24vhXqMB-FksWXEZwzDAi9BA_",
// "token": "${await FirebaseMessaging.instance.getToken()}",
"deviceType": "android"
}
};
ResponseModel responseModel = await _httpClient.customRequest(
"POST",
url: WebUrls.signInUrl,
requestBody: requestBody,
requestHeader: {'Content-Type': 'application/json'},
);
if (responseModel.statusCode >= 200 && responseModel.statusCode <= 230) {
return true;
} else {
return {
"message": responseModel.statusDescription,
};
}
}
//verify Otp and if success storing token and user data
Future<dynamic> verifyOtp({required String verificationCode}) async {
Map<String, dynamic> requestBody = {
"email": LocalStorageManager.getSessionToken(
tokenKey: LocalStorageKeys.kSaveEmailKey),
"verification_code": verificationCode,
};
ResponseModel responseModel = await _httpClient.customRequest(
"POST",
url: WebUrls.verifyCodeUrl,
requestBody: requestBody,
requestHeader: {'Content-Type': 'application/json'},
);
if (responseModel.statusCode >= 200 &&
responseModel.statusCode <= 230 &&
responseModel.statusDescription == "Code verified successfully") {
final data = UserModel.fromJson(responseModel.data ?? {});
LocalStorageManager.setLoginToken(responseModel.userToken);
LocalStorageManager.setUserId(data.id);
// await LocalStorageManager.saveSession(
// tokenKey: LocalStorageKeys.kUserModelKey,
// tokenValue:
// json.encode(UserModel.fromJson(responseModel.data ?? "").toJson()),
// );
// FrequentFunctions.userModel.value =
// UserModel.fromJson(responseModel.data ?? "");
return true;
} else {
return {
"message": responseModel.statusDescription,
};
}
}
Future<dynamic> passwordLessLogin(
{required String email, bool isRememberMe = false}) async {
Map<String, dynamic> requestBody = {
"email": email,
"expiryTime": "3m",
"fcm_tokens": {
"token":
"fY6_DGfGQ06OW4BUVEsEwG:APA91bGUFza2uhaaR0miN2jtY0ut7RuA5ObleZvqv2X8KLOBgksmDmgc9sHDdea-DBvHmz1aUwX1uhkysk92x50WQCLHPDD1VwGX5ybKhUwVdq4aBfI24vhXqMB-FksWXEZwzDAi9BA_",
"deviceType": "android"
}
};
ResponseModel responseModel = await _httpClient.customRequest(
"POST",
url: WebUrls.passwordLessSignInUrl,
requestBody: requestBody,
requestHeader: {'Content-Type': 'application/json'},
);
if (responseModel.statusCode >= 200 && responseModel.statusCode <= 230) {
return true;
} else {
return {
"message": responseModel.statusDescription,
};
}
}
Future<dynamic> forgetPassword({required String email}) async {
Map<String, dynamic> requestBody = {
"email": email,
// "fcm_tokens": {
// "token":
// "fY6_DGfGQ06OW4BUVEsEwG:APA91bGUFza2uhaaR0miN2jtY0ut7RuA5ObleZvqv2X8KLOBgksmDmgc9sHDdea-DBvHmz1aUwX1uhkysk92x50WQCLHPDD1VwGX5ybKhUwVdq4aBfI24vhXqMB-FksWXEZwzDAi9BA_",
// "deviceType": "android"
// }
};
ResponseModel responseModel = await _httpClient.customRequest(
"POST",
url: WebUrls.forgetPasswordUrl,
requestBody: requestBody,
requestHeader: {'Content-Type': 'application/json'},
);
if (responseModel.statusCode >= 200 && responseModel.statusCode <= 230) {
return true;
} else {
return responseModel.statusDescription;
}
}
}