Business Login Flutter Apps
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

58 líneas
2.2 KiB

  1. import 'dart:async';
  2. import 'package:flutter/material.dart';
  3. import '../../main.dart';
  4. import '../../Utils/keys.dart';
  5. import 'package:bloc/bloc.dart';
  6. import 'package:equatable/equatable.dart';
  7. part 'login_event.dart';
  8. part 'login_state.dart';
  9. class LoginBloc extends Bloc<LoginEvent, LoginState> {
  10. LoginBloc() : super(LoginInit()) {
  11. on<LoginEvent>((event, emit) async {
  12. if(event is LoginInitiated){
  13. emit(LoginLoading());
  14. var result = await util.JsonDataPostRaw({"User":event.email,"Pass":event.password}, '${prefs.getString(Keys.hostAddress)}/user//login/');
  15. Map<String,dynamic> obj = {};
  16. obj["SUCCESS"] = (result["STATUS"]==1&&result["DATA"]['status'] =='OK');
  17. if(result["STATUS"]==1&&obj["SUCCESS"]){
  18. prefs.setString(Keys.loginId, result['DATA'][Keys.loginId.toLowerCase()]);
  19. prefs.setString(Keys.company, result['DATA'][Keys.company.toLowerCase()]);
  20. obj[Keys.company] = result["DATA"][Keys.company.toLowerCase()];
  21. obj[Keys.loginId] = result["DATA"][Keys.loginId.toLowerCase()];
  22. }
  23. else{
  24. obj["MESSAGE"] = (result["DATA"] is String)?result["DATA"]:result["DATA"]['info'];
  25. }
  26. emit(LoginFinish(data: obj));
  27. }
  28. else if(event is LoginError){
  29. prefs.setBool(Keys.loggedIn, false);
  30. prefs.remove(Keys.cabangId);
  31. prefs.remove(Keys.company);
  32. prefs.remove(Keys.loginId);
  33. if(event.err != ''){
  34. util.showFlushbar(event.context, event.err);
  35. }
  36. emit(LoginInit());
  37. }
  38. else if (event is LoginSuccess){
  39. prefs.setBool(Keys.loggedIn, true);
  40. var cabangList = await util.JsonDataPostRaw({"company":event.company,"User":event.userId}, '${prefs.getString(Keys.hostAddress)}/user/cabangs/');
  41. if(cabangList['STATUS']==1){
  42. emit(LoginFinalize(cabangList: cabangList['DATA']));
  43. }
  44. else{
  45. Map<String,dynamic> obj = {};
  46. obj["SUCCESS"] = false;
  47. obj["MESSAGE"] = cabangList['DATA'];
  48. emit(LoginFinish(data: obj));
  49. }
  50. }
  51. });
  52. }
  53. }