import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:unit2/model/rbac/permission.dart'; import 'package:unit2/sevices/roles/rbac_services.dart'; import '../../model/rbac/new_permission.dart'; import '../../model/rbac/rbac.dart'; part 'rbac_event.dart'; part 'rbac_state.dart'; class RbacBloc extends Bloc { RbacBloc() : super(RbacInitial()) { List? modules; List? objects; List? roles; List? permissions; List? operations; on((event, emit) async { emit(RbacLoadingState()); try { modules = await RbacServices.instance.getModules(); objects = await RbacServices.instance.getObjects(); roles = await RbacServices.instance.getRole(); permissions = await RbacServices.instance.getPermission(); operations = await RbacServices.instance.getOperations(); emit(RbacScreenSetted(modules: modules!, objects: objects!, operations: operations!, permission: permissions!, role: roles!)); } catch (e) { emit(RbacErrorState(message: e.toString())); } });on((event, emit)async{ try{ emit(RbacLoadingState()); Map responseStatus = await RbacServices.instance.assignRBAC(assigneeId: event.assigneeId, assignerId: event.assignerId, selectedRole: event.selectedRole, selectedModule: event.selectedModule, permissionId: event.permissionId, newPermissions: event.newPermissions); emit(RbacAssignedState(responseStatus: responseStatus)); }catch(e){ emit(RbacErrorState(message: e.toString())); } }); on((event,emit){ emit(RbacScreenSetted(modules: modules!, objects: objects!, operations: operations!, permission: permissions!, role: roles!)); }); } }