printer receipt
This commit is contained in:
@@ -6,11 +6,14 @@ import 'package:injectable/injectable.dart';
|
||||
import 'package:print_bluetooth_thermal/print_bluetooth_thermal.dart';
|
||||
|
||||
import '../../../domain/printer/printer.dart';
|
||||
import '../datasource/local_data_provider.dart';
|
||||
import '../printer_dtos.dart';
|
||||
|
||||
@Injectable(as: IPrinterRepository)
|
||||
class PrinterRepository implements IPrinterRepository {
|
||||
final PrinterLocalDataProvider _localDataProvider;
|
||||
final _logName = 'PrinterRepository';
|
||||
PrinterRepository();
|
||||
PrinterRepository(this._localDataProvider);
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, bool>> connectBluetooth(
|
||||
@@ -117,4 +120,78 @@ class PrinterRepository implements IPrinterRepository {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> createPrinter(Printer printer) async {
|
||||
try {
|
||||
final result = await _localDataProvider.createPrinter(
|
||||
PrinterDto.fromDomain(printer),
|
||||
);
|
||||
|
||||
if (result.hasError) {
|
||||
return left(result.error!);
|
||||
}
|
||||
|
||||
return right(unit);
|
||||
} catch (e) {
|
||||
log('createPrinterError', name: _logName, error: e);
|
||||
return left(const PrinterFailure.unexpectedError());
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> deletePrinter(int id) async {
|
||||
try {
|
||||
final result = await _localDataProvider.deletePrinter(id);
|
||||
|
||||
if (result.hasError) {
|
||||
return left(result.error!);
|
||||
}
|
||||
|
||||
return right(unit);
|
||||
} catch (e) {
|
||||
log('deletePrinterError', name: _logName, error: e);
|
||||
return left(const PrinterFailure.unexpectedError());
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Printer>> getPrinterByCode(String code) async {
|
||||
try {
|
||||
final result = await _localDataProvider.findPrinterByCode(code);
|
||||
|
||||
if (result.hasError) {
|
||||
return left(result.error!);
|
||||
}
|
||||
|
||||
final printer = result.data!.toDomain();
|
||||
|
||||
return right(printer);
|
||||
} catch (e) {
|
||||
log('getPrinterByCodeError', name: _logName, error: e);
|
||||
return left(const PrinterFailure.unexpectedError());
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> updatePrinter(
|
||||
Printer printer,
|
||||
int id,
|
||||
) async {
|
||||
try {
|
||||
final result = await _localDataProvider.updatePrinter(
|
||||
PrinterDto.fromDomain(printer),
|
||||
id,
|
||||
);
|
||||
|
||||
if (result.hasError) {
|
||||
return left(result.error!);
|
||||
}
|
||||
|
||||
return right(unit);
|
||||
} catch (e) {
|
||||
log('updatePrinterError', name: _logName, error: e);
|
||||
return left(const PrinterFailure.unexpectedError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user