You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
3.5KB

  1. import 'dart:developer';
  2. import 'package:hive/hive.dart';
  3. import '../environment/app_config.dart';
  4. import '../presentation/screens/login/models/response_user.dart';
  5. final LocalStorage = HiveLocalStorage();
  6. class HiveLocalStorage {
  7. final box = Hive.box(FlavorConfig.values.LocalDBName);
  8. void open() {
  9. Hive.openBox(FlavorConfig.values.LocalDBName);
  10. }
  11. String getString(String key, {String? defaultValue}) {
  12. try {
  13. return box.get(key, defaultValue: defaultValue ?? '');
  14. } catch (_) {
  15. return '';
  16. }
  17. }
  18. int getInt(String key, {int? defaultValue}) {
  19. try {
  20. return box.get(key, defaultValue: defaultValue ?? -1);
  21. } catch (_) {
  22. return -1;
  23. }
  24. }
  25. bool getBool(String key, {bool? defaultValue}) {
  26. try {
  27. return box.get(key, defaultValue: defaultValue ?? false);
  28. } catch (_) {
  29. return false;
  30. }
  31. }
  32. dynamic getObject(String key) {
  33. try {
  34. return box.get(key);
  35. } catch (_) {
  36. return null;
  37. }
  38. }
  39. void save(String key, dynamic value) {
  40. box.put(key, value);
  41. }
  42. void clearUserInfo() {
  43. LocalStorage.save(LocalStorageKey.is_logged, false);
  44. LocalStorage.save(LocalStorageKey.access_token, '');
  45. LocalStorage.save(LocalStorageKey.full_name, '');
  46. LocalStorage.save(LocalStorageKey.user_id, '');
  47. LocalStorage.save(LocalStorageKey.username, '');
  48. LocalStorage.save(LocalStorageKey.username, '');
  49. LocalStorage.save(LocalStorageKey.trai_hien_tai, '');
  50. LocalStorage.save(LocalStorageKey.ten_hien_tai, '');
  51. LocalStorage.save(LocalStorageKey.ma_trais, []);
  52. LocalStorage.save(LocalStorageKey.user_roles, []);
  53. LocalStorage.save(LocalStorageKey.user_roles_by_tenants, []);
  54. }
  55. void saveUserInfo(ResponseUser data, String username) {
  56. try {
  57. // var decodedToken = JwtDecoder.decode(data.accessToken!);
  58. // var givenName = decodedToken['given_name'] ?? '';
  59. // var fullName = decodedToken['family_name'] ?? '';
  60. // var userId = decodedToken['userid'] ?? '';
  61. // var roles = decodedToken['http://schemas.microsoft.com/ws/2008/06/identity/claims/role'] as List;
  62. // // var roles = decodedToken['resource_access']['uca']['roles'] as List;
  63. // // var userRoles = roles.join('|');
  64. // // LocalStorage.save(LocalStorageKey.user_permission, userRoles);
  65. // LocalStorage.save(LocalStorageKey.is_logged, true);
  66. // LocalStorage.save(LocalStorageKey.username, username);
  67. // LocalStorage.save(LocalStorageKey.access_token, data.accessToken);
  68. // LocalStorage.save(LocalStorageKey.refresh_token, '');
  69. // LocalStorage.save(LocalStorageKey.given_name, givenName);
  70. // LocalStorage.save(LocalStorageKey.full_name, fullName);
  71. // LocalStorage.save(LocalStorageKey.user_id, userId);
  72. // LocalStorage.save(LocalStorageKey.user_roles, roles);
  73. } catch (e) {
  74. print(e);
  75. }
  76. }
  77. }
  78. class LocalStorageKey {
  79. static const String username = 'username';
  80. static const String access_token = 'access_token';
  81. static const String refresh_token = 'refresh_token';
  82. static const String is_logged = 'is_logged';
  83. static const String full_name = 'full_name';
  84. static const String given_name = 'given_name';
  85. static const String user_id = 'user_id';
  86. static const String user_roles = 'user_roles';
  87. static const String user_roles_by_tenants = 'user_roles_by_tenants';
  88. static const String ma_trais = 'ma_trais';
  89. static const String ten_trais = 'ten_trais';
  90. static const String trai_hien_tai = 'trai_hien_tai';
  91. static const String ten_hien_tai = 'ten_hien_tai';
  92. static const String device_key = 'device_key';
  93. }