delete account apis implemented

export_module_ui_ux_enhancement_signup
WaseemAbbasi22 5 days ago
parent 79c4404b0a
commit fb6dc22c05

@ -44,6 +44,8 @@ class URLs {
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 checkAppVersion => "$_baseUrl/Account/CheckAppVersion"; // web login
//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;
/// return -2 if request in progress
/// 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: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/int_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/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/pages/login_page.dart';
import 'package:test_sa/views/widgets/dialogs/dialog.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),
// 12.height,
//TODO need to test this ...
AppFilledButton(
label: "Delete Account",
buttonColor: AppColor.red30,
@ -190,19 +193,40 @@ class _SettingsPageState extends State<SettingsPage> {
);
if (result) {
Utils.showLoading(context);
await Future.delayed(const Duration(seconds: 2));
Utils.hideLoading(context);
// final userProvider = Provider.of<UserProvider>(context, listen: false);
// bool isSuccess = await userProvider.logout(context);
// if (isSuccess) {
// Provider.of<SettingProvider>(context, listen: false).resetSettings();
// userProvider.reset();
// Navigator.of(context).pop();
// Navigator.of(context).pop();
// Navigator.of(context).pushNamedAndRemoveUntil(LoginPage.routeName, (routes) => true);
// }
final userProvider = Provider.of<UserProvider>(context, listen: false);
// Check if user data is available
if (userProvider.user == null) {
Utils.showToast("User information not available");
return;
}
final employeeId = userProvider.user!.employeeId ?? "";
final userId = userProvider.user!.userID ?? "";
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),

Loading…
Cancel
Save