43 lines
1.2 KiB
Dart
43 lines
1.2 KiB
Dart
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;
|
|
}
|
|
}
|
|
}
|