Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. import 'dart:async';
  2. import 'package:ainflutter/bloc/authentication_bloc/authentication_event.dart';
  3. import 'package:ainflutter/bloc/authentication_bloc/authentication_state.dart';
  4. import 'package:ainflutter/model/network/site_id_post.dart';
  5. import 'package:ainflutter/model/user/login/login_response.dart';
  6. import 'package:ainflutter/repository/network/listing.dart';
  7. import 'package:ainflutter/repository/user/local_repo/login_response_repo.dart';
  8. import 'package:bloc/bloc.dart';
  9. import 'package:shared_preferences/shared_preferences.dart';
  10.  
  11. class AuthenticationBloc
  12. extends Bloc<AuthenticationEvent, AuthenticationState> {
  13. String authToken;
  14. SharedPreferences prefs;
  15. String siteId;
  16. bool firstStart;
  17. UserLoginResponseRepository userLoginResponseRepository;
  18.  
  19. AuthenticationBloc({this.userLoginResponseRepository}):assert(userLoginResponseRepository!=null);
  20.  
  21. @override
  22. AuthenticationState get initialState => AuthenticationUninitialized();
  23.  
  24. @override
  25. void onTransition(
  26. Transition<AuthenticationEvent, AuthenticationState> transition) {
  27. print(transition);
  28. }
  29.  
  30. @override
  31. Stream<AuthenticationState> mapEventToState(
  32. AuthenticationEvent event,
  33. ) async* {
  34. Stream<AuthenticationState> _mapAppStartedToState(startStatus) async* {
  35. //sharedPreference to store siteId
  36. prefs = await SharedPreferences.getInstance();
  37. try {
  38. UserLoggedInResponseData loggedInResponseData =
  39. await userLoginResponseRepository.getUserLoggedInResponseData();
  40.  
  41.  
  42. if (loggedInResponseData.authToken != null && startStatus=="authenticated") {
  43. // final name = await _userRepository.getUser();
  44.  
  45. yield AuthenticationAuthenticated(
  46. authToken: loggedInResponseData.authToken,
  47. siteId: loggedInResponseData.siteId,);
  48. }
  49. else if( startStatus== "initial"){
  50. yield UserAlreadyAuthenticated(
  51. authToken: loggedInResponseData.authToken,
  52. siteId: loggedInResponseData.siteId,);
  53. } else {
  54. siteId = prefs.getString('SITE_ID');
  55. yield siteId != null ? LandingPageState(siteId: siteId): AuthenticationUnauthenticated();
  56.  
  57.  
  58. }
  59. } catch (error) {
  60. // print("not logged in"+error);
  61. siteId = prefs.getString('SITE_ID');
  62. yield siteId!= null ? LandingPageState(siteId: siteId): AuthenticationUnauthenticated();
  63. }
  64. }
  65.  
  66. Stream<AuthenticationState> _mapLoggedInToState() async* {
  67.  
  68. UserLoggedInResponseData isSignedIn =
  69. await userLoginResponseRepository.getUserLoggedInResponseData();
  70. if (isSignedIn.authToken != null) {
  71. prefs.setString('authtoken', isSignedIn.authToken);
  72. yield AuthenticationAuthenticated(
  73. authToken: isSignedIn.authToken, siteId: isSignedIn.siteId);
  74. }
  75. }
  76.  
  77. Stream<AuthenticationState> _mapLoggedOutToState(String authToken) async* {
  78. int value = await userLoginResponseRepository.deleteAllLoginResponse();
  79. print("user deleted" + value.toString());
  80.  
  81. SiteIdPost siteIdPost = SiteIdPost(authToken);
  82. String liveSiteId =
  83. await NetworkLiveListingRepo().getUserSiteId(siteIdPost);
  84.  
  85. prefs.setString('SITE_ID', liveSiteId);
  86. yield LandingPageState(siteId: liveSiteId);
  87. }
  88.  
  89. if (event is AppStarted) {
  90. yield* _mapAppStartedToState(event.initialStart);
  91. } /*else if (event is LoggedIn) {
  92. yield* _mapLoggedInToState();
  93. }*/ else if (event is LoggedOut) {
  94. yield* _mapLoggedOutToState(event.authToken);
  95. }
  96. }
  97.  
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement