api intigreted of scan Qr and recent scan histoy ,scan history,scan history details

This commit is contained in:
Raj.Ghag
2026-04-17 15:55:54 +05:30
parent f301585948
commit 94cd74a135
60 changed files with 3678 additions and 1119 deletions

View 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());
}
}

View 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();
}

View 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];
}