30 lines
869 B
Dart
30 lines
869 B
Dart
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
|
|
import '../../domain/usecases/login_usecase.dart';
|
|
import 'auth_cubit.dart';
|
|
import 'login_state.dart';
|
|
|
|
class LoginCubit extends Cubit<LoginState> {
|
|
final LoginUseCase loginUseCase;
|
|
final AuthCubit authCubit;
|
|
|
|
LoginCubit(this.loginUseCase, this.authCubit) : super(LoginInitial());
|
|
|
|
/// Login
|
|
/// @param username 用户名
|
|
/// @param password 密码
|
|
/// @param sourceType 登录来源: 1:web; 2:mobile; 3:mini_programs; 4:pc
|
|
Future<void> login(String username, String password, sourceType) async {
|
|
emit(LoginLoading());
|
|
try {
|
|
final resultUser = await loginUseCase.call(
|
|
LoginParams(username, password, sourceType),
|
|
);
|
|
authCubit.loginSuccess(resultUser);
|
|
emit(LoginSuccess(resultUser));
|
|
} catch (e) {
|
|
emit(LoginFailure(e.toString()));
|
|
}
|
|
}
|
|
}
|