Modified _fetchUserInfo to update the ProjectCubit with the retrieved user's project UUID.

This commit is contained in:
hannathkadher
2025-02-15 00:35:34 +04:00
parent 55de7fab0f
commit da445e11aa
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,4 @@
import 'package:syncrow_web/pages/auth/model/project_model.dart';
import 'package:syncrow_web/pages/auth/model/token.dart'; import 'package:syncrow_web/pages/auth/model/token.dart';
class UserModel { class UserModel {
@ -13,6 +14,7 @@ class UserModel {
final bool? hasAcceptedWebAgreement; final bool? hasAcceptedWebAgreement;
final DateTime? webAgreementAcceptedAt; final DateTime? webAgreementAcceptedAt;
final UserRole? role; final UserRole? role;
final Project? project;
UserModel({ UserModel({
required this.uuid, required this.uuid,
@ -26,6 +28,7 @@ class UserModel {
required this.hasAcceptedWebAgreement, required this.hasAcceptedWebAgreement,
required this.webAgreementAcceptedAt, required this.webAgreementAcceptedAt,
required this.role, required this.role,
required this.project,
}); });
factory UserModel.fromJson(Map<String, dynamic> json) { factory UserModel.fromJson(Map<String, dynamic> json) {
@ -43,6 +46,8 @@ class UserModel {
? DateTime.parse(json['webAgreementAcceptedAt']) ? DateTime.parse(json['webAgreementAcceptedAt'])
: null, : null,
role: json['role'] != null ? UserRole.fromJson(json['role']) : null, role: json['role'] != null ? UserRole.fromJson(json['role']) : null,
project:
json['project'] != null ? Project.fromJson(json['project']) : null,
); );
} }
@ -64,6 +69,7 @@ class UserModel {
phoneNumber: null, phoneNumber: null,
isEmailVerified: null, isEmailVerified: null,
isAgreementAccepted: null, isAgreementAccepted: null,
project: null
); );
} }

View File

@ -4,6 +4,7 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
// import 'package:graphview/GraphView.dart'; // import 'package:graphview/GraphView.dart';
import 'package:syncrow_web/pages/auth/model/user_model.dart'; import 'package:syncrow_web/pages/auth/model/user_model.dart';
import 'package:syncrow_web/pages/common/bloc/project_cubit.dart';
import 'package:syncrow_web/pages/home/bloc/home_event.dart'; import 'package:syncrow_web/pages/home/bloc/home_event.dart';
import 'package:syncrow_web/pages/home/bloc/home_state.dart'; import 'package:syncrow_web/pages/home/bloc/home_state.dart';
import 'package:syncrow_web/pages/home/home_model/home_item_model.dart'; import 'package:syncrow_web/pages/home/home_model/home_item_model.dart';
@ -21,8 +22,9 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> {
UserModel? user; UserModel? user;
String terms = ''; String terms = '';
String policy = ''; String policy = '';
final ProjectCubit projectCubit;
HomeBloc() : super((HomeInitial())) { HomeBloc(this.projectCubit) : super((HomeInitial())) {
// on<CreateNewNode>(_createNode); // on<CreateNewNode>(_createNode);
on<FetchUserInfo>(_fetchUserInfo); on<FetchUserInfo>(_fetchUserInfo);
on<FetchTermEvent>(_fetchTerms); on<FetchTermEvent>(_fetchTerms);
@ -51,6 +53,10 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> {
var uuid = var uuid =
await const FlutterSecureStorage().read(key: UserModel.userUuidKey); await const FlutterSecureStorage().read(key: UserModel.userUuidKey);
user = await HomeApi().fetchUserInfo(uuid); user = await HomeApi().fetchUserInfo(uuid);
if (user != null && user!.project != null) {
projectCubit.setProjectUUID(user!.project!.uuid);
}
add(FetchTermEvent()); add(FetchTermEvent());
add(FetchPolicyEvent()); add(FetchPolicyEvent());