Line data Source code
1 : import 'package:unico_check/src/unico/abstractions/interfaces/open.camera.listener.dart'; 2 : import 'package:unico_check/src/unico/adapter/api/mapper/open.check.camera.factory.dart'; 3 : import 'package:unico_check/src/unico/adapter/api/response/document/unico.document.dart'; 4 : import 'package:unico_check/src/unico/adapter/api/response/selfie/unico.selfie.dart'; 5 : import 'package:unico_check/src/unico/domain/entities/camera_opener/camera.opener.config.entity.dart'; 6 : import 'package:unico_check/src/unico/domain/entities/document.type.dart'; 7 : import 'package:unico_check/src/unico/domain/entities/methods.channel.dart'; 8 : import 'package:unico_check/src/unico/domain/entities/open.camera.request.dart'; 9 : import 'package:unico_check/src/unico/domain/entities/result.camera.dart'; 10 : import 'package:unico_check/src/unico/domain/entities/unico.error.channel.dart'; 11 : import 'package:unico_check/src/unico/domain/usecase/open.camera.usecase.dart'; 12 : import 'package:unico_check/src/unico/domain/usecase/unico.callback.usecase.dart'; 13 : 14 : import 'unico.check.camera.opener.dart'; 15 : 16 : class UnicoCheckCameraOpenerDefault extends UnicoCheckCameraOpener 17 : implements IOpenCameraeListener { 18 : final OpenCameraUseCase openCameraUseCase; 19 : final OpenCameraRequest openCameraRequest; 20 : final CameraOpenerConfigEntity cameraOpenerConfig; 21 : final UnicoCallBackUseCase unicoCallBackUseCase; 22 : final OpenCheckCameraFactory openCheckCameraFactory; 23 : 24 : UnicoSelfie? _selfieListener; 25 : UnicoDocument? _documentListener; 26 : 27 2 : UnicoCheckCameraOpenerDefault({ 28 : required this.openCameraUseCase, 29 : required this.openCameraRequest, 30 : required this.cameraOpenerConfig, 31 : required this.unicoCallBackUseCase, 32 : required this.openCheckCameraFactory, 33 : }); 34 : 35 1 : @override 36 : void openCameraSelfie({required UnicoSelfie listener}) { 37 2 : _buildSelfieRequest(cameraOpenerConfig); 38 2 : _buildDefaultRequest(cameraOpenerConfig); 39 : 40 1 : _selfieListener = listener; 41 : 42 2 : final configEntity = openCheckCameraFactory.buildOpenCameraConfigEntity( 43 1 : openCameraRequest, 44 : MethodsChannel.open_camera_selfie, 45 : this, 46 : ); 47 : 48 2 : openCameraUseCase(configEntity); 49 : } 50 : 51 0 : @override 52 : void onSuccessOpenCamera(ResultCamera result) { 53 0 : _selfieListener?.onSuccessSelfie(result); 54 0 : _documentListener?.onSuccessDocument(result); 55 : } 56 : 57 1 : @override 58 : void onErrorOpenCamera(UnicoErrorChannel? result) { 59 2 : final config = openCheckCameraFactory.buildCameraCallbackConfingEntity( 60 : unicoError: result, 61 2 : unicoListener: cameraOpenerConfig.unicoListener, 62 1 : listenerSelfie: _selfieListener, 63 1 : listenerDocument: _documentListener, 64 : ); 65 2 : unicoCallBackUseCase(config); 66 : } 67 : 68 1 : @override 69 : void openCameraDocument({ 70 : required DocumentType documentType, 71 : required UnicoDocument listener, 72 : }) { 73 1 : _buildDocumentRequest(documentType); 74 2 : _buildDefaultRequest(cameraOpenerConfig); 75 : 76 1 : _documentListener = listener; 77 : 78 2 : final configEntity = openCheckCameraFactory.buildOpenCameraConfigEntity( 79 1 : openCameraRequest, 80 : MethodsChannel.open_camera_selfie, 81 : this, 82 : ); 83 : 84 2 : openCameraUseCase(configEntity); 85 : } 86 : 87 1 : void _buildSelfieRequest(CameraOpenerConfigEntity cameraOpenerConfig) { 88 1 : openCameraRequest 89 2 : ..setAutoCaptrue(cameraOpenerConfig.autoCapture) 90 2 : ..setSmartFrame(cameraOpenerConfig.smartFrame); 91 : } 92 : 93 1 : void _buildDefaultRequest(CameraOpenerConfigEntity cameraOpenerConfig) { 94 1 : openCameraRequest 95 2 : ..setUnicoTheme(cameraOpenerConfig.unicoTheme) 96 2 : ..setTimeoutSession(cameraOpenerConfig.timeoutSession) 97 2 : ..setUnicoConfigIos(cameraOpenerConfig.unicoConfigIos) 98 2 : ..setUnicoConfigAndroid(cameraOpenerConfig.unicoConfigAndroid); 99 : } 100 : 101 1 : void _buildDocumentRequest(DocumentType documentType) { 102 2 : openCameraRequest.setDocumentType(documentType); 103 : } 104 : }