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 loginUser( {required String email, required String password, bool isRememberMe = false}) async { Map 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 verifyOtp({required String verificationCode}) async { Map 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 passwordLessLogin( {required String email, bool isRememberMe = false}) async { Map 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 forgetPassword({required String email}) async { Map 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; } } }