refactor: enhance AuthLogic to handle user roles and improve navigation based on role selection; format code for better readability in ProfilePage

This commit is contained in:
2025-12-30 09:16:07 +03:30
parent 9e2e7845c8
commit 71123c3520
2 changed files with 186 additions and 59 deletions

View File

@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:rasadyar_chicken/data/common/dio_error_handler.dart';
import 'package:rasadyar_chicken/data/common/fa_user_role.dart';
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart';
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart';
@@ -123,7 +124,6 @@ class AuthLogic extends GetxController with GetTickerProviderStateMixin {
},
),
onSuccess: (result) async {
var tmpRoles = result?.role?.where((element) {
final allowedRoles = {
'poultryscience',
@@ -141,9 +141,9 @@ class AuthLogic extends GetxController with GetTickerProviderStateMixin {
final lowerElement = element.toString().toLowerCase().trim();
return allowedRoles.contains(lowerElement);
}).toList();
if (tmpRoles != null && tmpRoles.isNotEmpty ) {
await gService.saveSelectedModule(_module);
if (tmpRoles != null && tmpRoles.isNotEmpty) {
await gService.saveSelectedModule(_module);
await tokenStorageService.saveModule(_module);
await tokenStorageService.saveAccessToken(
_module,
@@ -169,8 +169,19 @@ class AuthLogic extends GetxController with GetTickerProviderStateMixin {
"device_name": deviceName.value,
},
);
if (tmpRoles.length == 1) {
var tmpRoute = getFaUserRoleWithOnTap(tmpRoles.first).values.first;
Get.offAndToNamed(CommonRoutes.role);
await gService.saveRole(Module.chicken, tmpRoles.first);
await gService.saveRoute(
Module.chicken,
tmpRoute ?? CommonRoutes.role,
);
Get.offAndToNamed(tmpRoute ?? CommonRoutes.role);
} else {
Get.offAndToNamed(CommonRoutes.role);
}
} else {
Get.snackbar(
'با احترام ',