|
- import 'dart:async';
- import 'package:flutter/material.dart';
-
- import '../../main.dart';
- import '../../Utils/keys.dart';
- import 'package:bloc/bloc.dart';
- import 'package:equatable/equatable.dart';
-
- part 'login_event.dart';
- part 'login_state.dart';
-
-
- class LoginBloc extends Bloc<LoginEvent, LoginState> {
- LoginBloc() : super(LoginInit()) {
- on<LoginEvent>((event, emit) async {
- if(event is LoginInitiated){
- emit(LoginLoading());
- var result = await util.JsonDataPostRaw({"User":event.email,"Pass":event.password}, '${prefs.getString(Keys.hostAddress)}/user//login/');
- Map<String,dynamic> obj = {};
- obj["SUCCESS"] = (result["STATUS"]==1&&result["DATA"]['status'] =='OK');
- if(result["STATUS"]==1&&obj["SUCCESS"]){
- prefs.setString(Keys.loginId, result['DATA'][Keys.loginId.toLowerCase()]);
- prefs.setString(Keys.company, result['DATA'][Keys.company.toLowerCase()]);
- obj[Keys.company] = result["DATA"][Keys.company.toLowerCase()];
- obj[Keys.loginId] = result["DATA"][Keys.loginId.toLowerCase()];
- }
- else{
- obj["MESSAGE"] = (result["DATA"] is String)?result["DATA"]:result["DATA"]['info'];
- }
- emit(LoginFinish(data: obj));
- }
- else if(event is LoginError){
- prefs.setBool(Keys.loggedIn, false);
- prefs.remove(Keys.cabangId);
- prefs.remove(Keys.company);
- prefs.remove(Keys.loginId);
- if(event.err != ''){
- util.showFlushbar(event.context, event.err);
- }
- emit(LoginInit());
- }
- else if (event is LoginSuccess){
- prefs.setBool(Keys.loggedIn, true);
- var cabangList = await util.JsonDataPostRaw({"company":event.company,"User":event.userId}, '${prefs.getString(Keys.hostAddress)}/user/cabangs/');
- if(cabangList['STATUS']==1){
- emit(LoginFinalize(cabangList: cabangList['DATA']));
- }
- else{
- Map<String,dynamic> obj = {};
- obj["SUCCESS"] = false;
- obj["MESSAGE"] = cabangList['DATA'];
- emit(LoginFinish(data: obj));
- }
- }
- });
- }
- }
|