import 'dart:io'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:imagini/blocs/login/events.dart'; import 'package:imagini/blocs/login/states.dart'; import 'package:imagini/services/api/api.dart'; import 'package:imagini/services/api/exceptions.dart'; class LoginBloc extends Bloc<LoginEvents, LoginState> { final ImaginiAPI imaginiAPI; Map<String, String> loginResult; String exampleResult; LoginBloc({ this.imaginiAPI }) : super(LoginInitState()); @override Stream<LoginState> mapEventToState(LoginEvents event) async* { switch (event) { case LoginEvents.loginResult: yield LoginLoading(); try { // exampleResult = await imaginiAPI.exampleApi(); loginResult = await imaginiAPI.loginAPI("admin", "admin"); yield LoginSuccess(); } on SocketException { yield LoginFailed( error: ConnectionRefusedException('No Internet'), ); } on FormatException { yield LoginFailed( error: InvalidFormatException('Invalid Response Format'), ); } catch (e) { print(e); yield LoginFailed( error: UnknownException('Unknown Error'), ); } break; } } }