Documentation, Basic Login Workflow
This commit is contained in:
40
web_native/lib/blocs/login_bloc.dart
Normal file
40
web_native/lib/blocs/login_bloc.dart
Normal file
@@ -0,0 +1,40 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:imagini/core/imagini_application.dart';
|
||||
import 'package:imagini/api/imagini_api_repository.dart';
|
||||
|
||||
class LoginBloc{
|
||||
|
||||
final ImaginiApplication _application;
|
||||
ImaginiAPIRepository _imaginiAPI;
|
||||
|
||||
final _loginController = StreamController<bool>.broadcast();
|
||||
Stream<bool> get loginResult => _loginController.stream;
|
||||
|
||||
final _authenticatedController = StreamController<bool>.broadcast();
|
||||
Stream<bool> get authenticatedResult => _authenticatedController.stream;
|
||||
|
||||
LoginBloc(this._application){
|
||||
_init();
|
||||
}
|
||||
|
||||
void _init(){
|
||||
_imaginiAPI = _application.imaginiAPI;
|
||||
checkAuthentication();
|
||||
|
||||
// attemptLogin("admin", "admin", "http://localhost:8484");
|
||||
}
|
||||
|
||||
void dispose(){
|
||||
_loginController.close();
|
||||
_authenticatedController.close();
|
||||
}
|
||||
|
||||
checkAuthentication(){
|
||||
_authenticatedController.addStream(_imaginiAPI.isAuthenticated());
|
||||
}
|
||||
|
||||
attemptLogin(String username, password, server){
|
||||
_loginController.addStream(_imaginiAPI.login(username, password, server));
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:imagini/core/imagini_application.dart';
|
||||
import 'package:imagini/api/imagini_api_repository.dart';
|
||||
import 'package:imagini/graphql/imagini_graphql.dart';
|
||||
|
||||
class SplashBloc{
|
||||
|
||||
final ImaginiApplication _application;
|
||||
|
||||
final _loginController = StreamController<Login$Query$AuthResponse>();
|
||||
Stream<Login$Query$AuthResponse> get loginResult => _loginController.stream;
|
||||
|
||||
SplashBloc(this._application){
|
||||
_init();
|
||||
}
|
||||
|
||||
void _init(){
|
||||
// Do Initial Load
|
||||
initializeLogin();
|
||||
}
|
||||
|
||||
void dispose(){
|
||||
_loginController.close();
|
||||
}
|
||||
|
||||
initializeLogin(){
|
||||
ImaginiAPIRepository imaginiAPI = _application.imaginiAPI;
|
||||
|
||||
// TODO: This should actually attempt to load the existing Tokens, not login
|
||||
_loginController.addStream(imaginiAPI.login("admin", "admin"));
|
||||
|
||||
// imaginiAPI.login("admin", "admin1").listen((LoginResponse lr) {
|
||||
// });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user