api intigreted of scan Qr and recent scan histoy ,scan history,scan history details
This commit is contained in:
70
lib/scan/bloc/submit_qr_code/submit_qr_code_bloc.dart
Normal file
70
lib/scan/bloc/submit_qr_code/submit_qr_code_bloc.dart
Normal file
@@ -0,0 +1,70 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
import '../../repository/submit_qr_code_repository.dart';
|
||||
|
||||
part 'submit_qr_code_event.dart';
|
||||
part 'submit_qr_code_state.dart';
|
||||
|
||||
class SubmitQrCodeBloc
|
||||
extends Bloc<SubmitQrCodeEvent, SubmitQrCodeState> {
|
||||
final SubmitQrCodeRepository _repository;
|
||||
|
||||
SubmitQrCodeBloc({SubmitQrCodeRepository? repository})
|
||||
: _repository = repository ?? SubmitQrCodeRepository(),
|
||||
super(const SubmitQrCodeInitial()) {
|
||||
on<SubmitQrCodeEventTriggered>(_onSubmitQrCode);
|
||||
on<ResetSubmitQrCodeEvent>(_onReset);
|
||||
}
|
||||
|
||||
Future<void> _onSubmitQrCode(
|
||||
SubmitQrCodeEventTriggered event,
|
||||
Emitter<SubmitQrCodeState> emit,
|
||||
) async {
|
||||
if (event.qrCode.trim().isEmpty) {
|
||||
emit(const SubmitQrCodeFailure(
|
||||
errorMessage: 'QR code cannot be empty'));
|
||||
return;
|
||||
}
|
||||
|
||||
emit(const SubmitQrCodeLoading());
|
||||
|
||||
try {
|
||||
final response = await _repository.submitQrCode(
|
||||
qrCode: event.qrCode,
|
||||
);
|
||||
|
||||
final success = response['success'] == true;
|
||||
final message = response['message']?.toString();
|
||||
final error = response['error']?.toString();
|
||||
|
||||
if (success) {
|
||||
emit(SubmitQrCodeSuccess(
|
||||
data: response,
|
||||
message: message,
|
||||
));
|
||||
} else {
|
||||
emit(SubmitQrCodeFailure(
|
||||
errorMessage: message ?? 'Failed to submit QR Code',
|
||||
error: error,
|
||||
));
|
||||
}
|
||||
|
||||
} on Exception catch (e) {
|
||||
emit(SubmitQrCodeFailure(
|
||||
errorMessage: e.toString().replaceFirst('Exception: ', ''),
|
||||
));
|
||||
} catch (e) {
|
||||
emit(SubmitQrCodeFailure(
|
||||
errorMessage: 'Unexpected error: $e',
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
void _onReset(
|
||||
ResetSubmitQrCodeEvent event,
|
||||
Emitter<SubmitQrCodeState> emit,
|
||||
) {
|
||||
emit(const SubmitQrCodeInitial());
|
||||
}
|
||||
}
|
||||
21
lib/scan/bloc/submit_qr_code/submit_qr_code_event.dart
Normal file
21
lib/scan/bloc/submit_qr_code/submit_qr_code_event.dart
Normal file
@@ -0,0 +1,21 @@
|
||||
part of 'submit_qr_code_bloc.dart';
|
||||
|
||||
abstract class SubmitQrCodeEvent extends Equatable {
|
||||
const SubmitQrCodeEvent();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class SubmitQrCodeEventTriggered extends SubmitQrCodeEvent {
|
||||
final String qrCode;
|
||||
|
||||
const SubmitQrCodeEventTriggered({required this.qrCode});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [qrCode];
|
||||
}
|
||||
|
||||
class ResetSubmitQrCodeEvent extends SubmitQrCodeEvent {
|
||||
const ResetSubmitQrCodeEvent();
|
||||
}
|
||||
42
lib/scan/bloc/submit_qr_code/submit_qr_code_state.dart
Normal file
42
lib/scan/bloc/submit_qr_code/submit_qr_code_state.dart
Normal file
@@ -0,0 +1,42 @@
|
||||
part of 'submit_qr_code_bloc.dart';
|
||||
|
||||
abstract class SubmitQrCodeState extends Equatable {
|
||||
const SubmitQrCodeState();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class SubmitQrCodeInitial extends SubmitQrCodeState {
|
||||
const SubmitQrCodeInitial();
|
||||
}
|
||||
|
||||
class SubmitQrCodeLoading extends SubmitQrCodeState {
|
||||
const SubmitQrCodeLoading();
|
||||
}
|
||||
|
||||
class SubmitQrCodeSuccess extends SubmitQrCodeState {
|
||||
final Map<String, dynamic> data;
|
||||
final String? message;
|
||||
|
||||
const SubmitQrCodeSuccess({
|
||||
required this.data,
|
||||
this.message,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [data, message];
|
||||
}
|
||||
|
||||
class SubmitQrCodeFailure extends SubmitQrCodeState {
|
||||
final String errorMessage;
|
||||
final String? error;
|
||||
|
||||
const SubmitQrCodeFailure({
|
||||
required this.errorMessage,
|
||||
this.error,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [errorMessage, error];
|
||||
}
|
||||
Reference in New Issue
Block a user