delete account apis implemented

export_module_ui_ux_enhancement_signup
WaseemAbbasi22 6 days ago
parent 79c4404b0a
commit fb6dc22c05

@ -44,6 +44,8 @@ class URLs {
static get enableFaceId => "$_baseUrl/MobileAuth/EnabledFaceId"; static get enableFaceId => "$_baseUrl/MobileAuth/EnabledFaceId";
static get deleteUser => "$_baseUrl/Account/DeleteUser"; // delete user account
static get checkLoginValidation => "$_baseUrl/Account/Authenticate"; // web login static get checkLoginValidation => "$_baseUrl/Account/Authenticate"; // web login
static get checkAppVersion => "$_baseUrl/Account/CheckAppVersion"; // web login static get checkAppVersion => "$_baseUrl/Account/CheckAppVersion"; // web login
//Reset Password Apis... //Reset Password Apis...

@ -217,6 +217,29 @@ class UserProvider extends ChangeNotifier {
} }
} }
Future<bool> deleteUser(BuildContext context, {required String employeeId, required String userId}) async {
Response response;
try {
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
response = await ApiManager.instance.post(
URLs.deleteUser,
body: {
"employeeId": employeeId,
"userId": userId,
},
);
if (response.statusCode >= 200 && response.statusCode < 300) {
Navigator.pop(context);
return true;
}
Navigator.pop(context);
return false;
} catch (error) {
Navigator.pop(context);
return false;
}
}
/// sign up with User object; /// sign up with User object;
/// return -2 if request in progress /// return -2 if request in progress
/// return -1 if error happen when sending request /// return -1 if error happen when sending request

@ -7,6 +7,7 @@ import 'package:local_auth_darwin/local_auth_darwin.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
@ -15,6 +16,7 @@ import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/helper/utils.dart'; import 'package:test_sa/helper/utils.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/pages/login_page.dart';
import 'package:test_sa/views/widgets/dialogs/dialog.dart'; import 'package:test_sa/views/widgets/dialogs/dialog.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart'; import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
@ -177,6 +179,7 @@ class _SettingsPageState extends State<SettingsPage> {
], ],
).toShadowContainer(context, borderRadius: 16, padding: 16).paddingAll(16), ).toShadowContainer(context, borderRadius: 16, padding: 16).paddingAll(16),
// 12.height, // 12.height,
//TODO need to test this ...
AppFilledButton( AppFilledButton(
label: "Delete Account", label: "Delete Account",
buttonColor: AppColor.red30, buttonColor: AppColor.red30,
@ -190,19 +193,40 @@ class _SettingsPageState extends State<SettingsPage> {
); );
if (result) { if (result) {
Utils.showLoading(context); final userProvider = Provider.of<UserProvider>(context, listen: false);
await Future.delayed(const Duration(seconds: 2));
Utils.hideLoading(context); // Check if user data is available
if (userProvider.user == null) {
// final userProvider = Provider.of<UserProvider>(context, listen: false); Utils.showToast("User information not available");
// bool isSuccess = await userProvider.logout(context); return;
// if (isSuccess) { }
// Provider.of<SettingProvider>(context, listen: false).resetSettings();
// userProvider.reset(); final employeeId = userProvider.user!.employeeId ?? "";
// Navigator.of(context).pop(); final userId = userProvider.user!.userID ?? "";
// Navigator.of(context).pop();
// Navigator.of(context).pushNamedAndRemoveUntil(LoginPage.routeName, (routes) => true); if (employeeId.isEmpty || userId.isEmpty) {
// } Utils.showToast("Unable to delete account: missing user information");
return;
}
// Call the delete user API
bool isSuccess = await userProvider.deleteUser(
context,
employeeId: employeeId,
userId: userId,
);
if (isSuccess) {
// Reset settings and user data
Provider.of<SettingProvider>(context, listen: false).resetSettings();
userProvider.reset();
// Navigate to login page
Navigator.of(context).pushNamedAndRemoveUntil(
LoginPage.routeName,
(routes) => false,
);
}
} }
}, },
).paddingAll(16), ).paddingAll(16),

Loading…
Cancel
Save