Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'dart:async';
- import 'package:ainflutter/bloc/authentication_bloc/authentication_event.dart';
- import 'package:ainflutter/bloc/authentication_bloc/authentication_state.dart';
- import 'package:ainflutter/model/network/site_id_post.dart';
- import 'package:ainflutter/model/user/login/login_response.dart';
- import 'package:ainflutter/repository/network/listing.dart';
- import 'package:ainflutter/repository/user/local_repo/login_response_repo.dart';
- import 'package:bloc/bloc.dart';
- import 'package:shared_preferences/shared_preferences.dart';
- class AuthenticationBloc
- extends Bloc<AuthenticationEvent, AuthenticationState> {
- String authToken;
- SharedPreferences prefs;
- String siteId;
- bool firstStart;
- UserLoginResponseRepository userLoginResponseRepository;
- AuthenticationBloc({this.userLoginResponseRepository}):assert(userLoginResponseRepository!=null);
- @override
- AuthenticationState get initialState => AuthenticationUninitialized();
- @override
- void onTransition(
- Transition<AuthenticationEvent, AuthenticationState> transition) {
- print(transition);
- }
- @override
- Stream<AuthenticationState> mapEventToState(
- AuthenticationEvent event,
- ) async* {
- Stream<AuthenticationState> _mapAppStartedToState(startStatus) async* {
- //sharedPreference to store siteId
- prefs = await SharedPreferences.getInstance();
- try {
- UserLoggedInResponseData loggedInResponseData =
- await userLoginResponseRepository.getUserLoggedInResponseData();
- if (loggedInResponseData.authToken != null && startStatus=="authenticated") {
- // final name = await _userRepository.getUser();
- yield AuthenticationAuthenticated(
- authToken: loggedInResponseData.authToken,
- siteId: loggedInResponseData.siteId,);
- }
- else if( startStatus== "initial"){
- yield UserAlreadyAuthenticated(
- authToken: loggedInResponseData.authToken,
- siteId: loggedInResponseData.siteId,);
- } else {
- siteId = prefs.getString('SITE_ID');
- yield siteId != null ? LandingPageState(siteId: siteId): AuthenticationUnauthenticated();
- }
- } catch (error) {
- // print("not logged in"+error);
- siteId = prefs.getString('SITE_ID');
- yield siteId!= null ? LandingPageState(siteId: siteId): AuthenticationUnauthenticated();
- }
- }
- Stream<AuthenticationState> _mapLoggedInToState() async* {
- UserLoggedInResponseData isSignedIn =
- await userLoginResponseRepository.getUserLoggedInResponseData();
- if (isSignedIn.authToken != null) {
- prefs.setString('authtoken', isSignedIn.authToken);
- yield AuthenticationAuthenticated(
- authToken: isSignedIn.authToken, siteId: isSignedIn.siteId);
- }
- }
- Stream<AuthenticationState> _mapLoggedOutToState(String authToken) async* {
- int value = await userLoginResponseRepository.deleteAllLoginResponse();
- print("user deleted" + value.toString());
- SiteIdPost siteIdPost = SiteIdPost(authToken);
- String liveSiteId =
- await NetworkLiveListingRepo().getUserSiteId(siteIdPost);
- prefs.setString('SITE_ID', liveSiteId);
- yield LandingPageState(siteId: liveSiteId);
- }
- if (event is AppStarted) {
- yield* _mapAppStartedToState(event.initialStart);
- } /*else if (event is LoggedIn) {
- yield* _mapLoggedInToState();
- }*/ else if (event is LoggedOut) {
- yield* _mapLoggedOutToState(event.authToken);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement