first commit
This commit is contained in:
37
lib/modules/profile/bloc/logout/logout_cubit.dart
Normal file
37
lib/modules/profile/bloc/logout/logout_cubit.dart
Normal file
@@ -0,0 +1,37 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:frontend_eccp_mobile/app/core/services/crashlytics_service.dart';
|
||||
import 'package:frontend_eccp_mobile/modules/profile/bloc/logout/logout_state.dart';
|
||||
import 'package:frontend_eccp_mobile/modules/profile/data/repositories/profile_repository.dart';
|
||||
import 'package:injectable/injectable.dart';
|
||||
|
||||
@injectable
|
||||
class LogoutCubit extends Cubit<LogoutState> {
|
||||
LogoutCubit(this._repository) : super(LogoutInitial());
|
||||
|
||||
final ProfileRepository _repository;
|
||||
|
||||
Future<void> logout() async {
|
||||
emit(LogoutLoading());
|
||||
|
||||
try {
|
||||
final response = await _repository.logout();
|
||||
|
||||
if (response.status != 'success') {
|
||||
emit(LogoutFailure(response.message));
|
||||
return;
|
||||
}
|
||||
emit(LogoutSuccess());
|
||||
} on DioException catch (e) {
|
||||
emit(LogoutFailure(e.error?.toString()));
|
||||
} catch (e, s) {
|
||||
await CrashlyticsService.recordError(
|
||||
e,
|
||||
s,
|
||||
fatal: true,
|
||||
reason: 'Logout Unknown Error',
|
||||
);
|
||||
emit(const LogoutFailure());
|
||||
}
|
||||
}
|
||||
}
|
||||
25
lib/modules/profile/bloc/logout/logout_state.dart
Normal file
25
lib/modules/profile/bloc/logout/logout_state.dart
Normal file
@@ -0,0 +1,25 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class LogoutState extends Equatable {
|
||||
const LogoutState();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class LogoutInitial extends LogoutState {}
|
||||
|
||||
class LogoutLoading extends LogoutState {}
|
||||
|
||||
class LogoutSuccess extends LogoutState {}
|
||||
|
||||
class LogoutFailure extends LogoutState {
|
||||
const LogoutFailure([this.message]);
|
||||
|
||||
final String? message;
|
||||
|
||||
bool get hasMessage => message != null && message!.isNotEmpty;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
1
lib/modules/profile/bloc/profile/profile_cubit.dart
Normal file
1
lib/modules/profile/bloc/profile/profile_cubit.dart
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
lib/modules/profile/bloc/profile/profile_state.dart
Normal file
1
lib/modules/profile/bloc/profile/profile_state.dart
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
Reference in New Issue
Block a user