Line data Source code
1 : import 'package:unico_check/src/unico/abstractions/use_case.dart'; 2 : import 'package:unico_check/src/unico/adapter/api/response/document/unico.document.dart'; 3 : import 'package:unico_check/src/unico/adapter/api/response/selfie/unico.selfie.dart'; 4 : import 'package:unico_check/src/unico/adapter/api/unico.listener.dart'; 5 : import 'package:unico_check/src/unico/domain/entities/camera_callback/camera.callback.config.entity.dart'; 6 : import 'package:unico_check/src/unico/domain/entities/error.method.name.dart'; 7 : import 'package:unico_check/src/unico/domain/entities/unico.error.channel.dart'; 8 : import 'package:unico_check/src/unico/domain/mapper/unico.error.factory.dart'; 9 : 10 : class UnicoCallBackUseCase 11 : implements UseCase<void, CameraCallbackConfingEntity> { 12 : final UnicoErrorFactory unicoErrorMapper; 13 : static const String unknownError = "unknown error"; 14 : static const int unknownCode = 999; 15 : 16 : late UnicoErrorChannel? _unicoError; 17 : late UnicoListener _unicoListener; 18 : late UnicoSelfie? _listenerSelfie; 19 : late UnicoDocument? _listenerDocument; 20 : 21 2 : UnicoCallBackUseCase(this.unicoErrorMapper); 22 : 23 1 : @override 24 : void call(CameraCallbackConfingEntity param) { 25 2 : _unicoError = param.unicoError; 26 2 : _unicoListener = param.unicoListener; 27 2 : _listenerSelfie = param.listenerSelfie; 28 2 : _listenerDocument = param.listenerDocument; 29 : 30 1 : _verifyError(); 31 : } 32 : 33 1 : _verifyError() { 34 1 : if (_unicoError != null && 35 2 : _unicoError?.methodName != null && 36 3 : _unicoError?.methodName != "") { 37 3 : _errorCallBackWithName(_unicoError!.methodName!); 38 : } else { 39 2 : _unicoListener.onErrorUnico( 40 2 : unicoErrorMapper.buildUnicoError(unknownCode, unknownError)); 41 : } 42 : } 43 : 44 1 : _errorCallBackWithName(String methodName) { 45 : try { 46 : switch (methodName) { 47 1 : case ErrorMethodName.onCameraFailedPrepare: 48 1 : case ErrorMethodName.onErrorUnico: 49 1 : case ErrorMethodName.onErrorJsonFileName: 50 1 : _onErrorUnico(); 51 : break; 52 1 : case ErrorMethodName.onUserClosedCameraManually: 53 2 : _unicoListener.onUserClosedCameraManually(); 54 : break; 55 1 : case ErrorMethodName.onSystemClosedCameraTimeoutSession: 56 2 : _unicoListener.onSystemClosedCameraTimeoutSession(); 57 : break; 58 1 : case ErrorMethodName.onSystemChangedTypeCameraTimeoutFaceInference: 59 2 : _unicoListener.onSystemChangedTypeCameraTimeoutFaceInference(); 60 : break; 61 1 : case ErrorMethodName.onErrorSelfie: 62 1 : _onErrorSelfie(); 63 : break; 64 1 : case ErrorMethodName.onErrorDocument: 65 1 : _onErrorDocument(); 66 : break; 67 : } 68 : } catch (exception) { 69 2 : _unicoListener.onErrorUnico( 70 2 : unicoErrorMapper.buildUnicoError(unknownCode, unknownError)); 71 : } 72 : } 73 : 74 1 : _onErrorUnico() { 75 4 : _unicoListener.onErrorUnico(unicoErrorMapper.buildUnicoError( 76 2 : _unicoError?.code ?? unknownCode, 77 2 : _unicoError?.description ?? unknownError, 78 : )); 79 : } 80 : 81 1 : _onErrorSelfie() { 82 4 : _listenerSelfie?.onErrorSelfie(unicoErrorMapper.buildUnicoError( 83 2 : _unicoError?.code ?? unknownCode, 84 2 : _unicoError?.description ?? 'Selfie error', 85 : )); 86 : } 87 : 88 1 : _onErrorDocument() { 89 4 : _listenerDocument?.onErrorDocument(unicoErrorMapper.buildUnicoError( 90 2 : _unicoError?.code ?? unknownCode, 91 2 : _unicoError?.description ?? 'Document error', 92 : )); 93 : } 94 : }