package com.reactnativezyprotectabiomodule import android.util.Log import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReactMethod import com.facebook.react.bridge.ReadableMap import com.facebook.react.bridge.WritableMap import com.facebook.react.bridge.WritableNativeMap import com.google.gson.Gson import com.zy.multicompany.android.lib.sdk.validacionfacial.api.IZyApiCapturaFacial import com.zy.multicompany.android.lib.sdk.validacionfacial.api.ZyApiCapturaFacial import com.zy.multicompany.android.lib.sdk.validacionfacial.api.ZyRequest import com.zy.multicompany.android.lib.sdk.validacionfacial.api.ZyResponse class ZyprotectabioModuleModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { override fun getName(): String { return "ZyprotectabioModule" } @ReactMethod fun onZyBioCapture(opcional: ReadableMap, promise: Promise) { val gson = Gson() val opcionalJson = gson.toJson(opcional.toHashMap()) val opcionalData = gson.fromJson(opcionalJson, com.reactnativezyprotectabiomodule.bean.Opcional::class.java) val zyRequestApi: ZyRequest = ZyRequest() zyRequestApi.bioTiDoc = opcionalData.tiDocumento zyRequestApi.bioNuDoc = opcionalData.nuDocumento zyRequestApi.token = opcionalData.accessToken zyRequestApi.bioPais = opcionalData.bioPais zyRequestApi.idFlujo = opcionalData.idFlujo zyRequestApi.url = opcionalData.urlSource Log.i(TAG, "calling onZyBioCapture") Log.i(TAG, "nuDocumento:" + zyRequestApi.bioTiDoc) Log.i(TAG, "tiDocumento:" + zyRequestApi.bioNuDoc) verifyProtecta(zyRequestApi, promise) } protected fun verifyProtecta(zyRequestApi: ZyRequest?, promise: Promise) { val iZyApiCapturaFacial: IZyApiCapturaFacial = ZyApiCapturaFacial(getCurrentActivity(), object : IZyApiCapturaFacial.ICallback { override fun onStart() { Log.i(TAG, "onStart") //openDialog("Porfavor espere..."); } override fun onComplete() { Log.i(TAG, "onComplete") //closeDialog(); } override fun onSuccess(zyResponse: ZyResponse) { Log.i(TAG, "onSuccess") Log.i(TAG, "=====>>> zyResponse: $zyResponse") val result: WritableMap = WritableNativeMap().apply { putString("codError", if (zyResponse.codError.isNotEmpty()) zyResponse.codError else "") putString("deError", if (zyResponse.deError.isNotEmpty()) zyResponse.deError else "") putString("codBioError", if (zyResponse.codBioError.isNotEmpty()) zyResponse.codBioError else "") putString("deBioError", if (zyResponse.deBioError.isNotEmpty()) zyResponse.deBioError else "") putString("coErrorButton", if (zyResponse.coErrorButton.isNotEmpty()) zyResponse.coErrorButton else "") putString("deErrorButton", if (zyResponse.deErrorButton.isNotEmpty()) zyResponse.deErrorButton else "") putString("idSolicitud", if (zyResponse.bmoNuSolicitud.isNotEmpty()) zyResponse.bmoNuSolicitud else "") } //successCallBack.invoke(result) promise.resolve(result) } override fun onError(zyError: ZyResponse) { Log.i(TAG, "OnError") Log.i(TAG, "=====>>> zyError: $zyError") val result: WritableMap = WritableNativeMap().apply { putString("codError", if (zyError.codError.isNotEmpty()) zyError.codError else "") putString("deError", if (zyError.deError.isNotEmpty()) zyError.deError else "") putString("codBioError", if (zyError.codBioError.isNotEmpty()) zyError.codBioError else "") putString("deBioError", if (zyError.deBioError.isNotEmpty()) zyError.deBioError else "") putString("coErrorButton", zyError.coErrorButton?.takeIf { it.isNotEmpty() } ?: "") putString("deErrorButton", zyError.deErrorButton?.takeIf { it.isNotEmpty() } ?: "") putString("idSolicitud", if (zyError.bmoNuSolicitud.isNotEmpty()) zyError.bmoNuSolicitud else "") } //errorCallBack.invoke(result) promise.resolve(result) //promise.reject("ERROR_CODE", result) } override fun onRetries(zyError: ZyResponse) { Log.i(TAG, "onRetries") Log.i(TAG,"codError: " + zyError.codError + " , " + "deError: " + zyError.deError + " , " + "codBioError: " + zyError.codBioError + " , " + "deBioError: " + zyError.deBioError + " , " + "bmoNuSolicitud " + zyError.bmoNuSolicitud ) } }) val zyRequest = ZyRequest() zyRequest.bioTiDoc = zyRequestApi?.bioTiDoc?.takeIf { it.isNotBlank() } ?: "" zyRequest.bioNuDoc = zyRequestApi?.bioNuDoc ?: "" zyRequest.bmoNuOperacionEmps = "PROTECTA-ANDROID" zyRequest.token = zyRequestApi?.token ?: "" zyRequest.bioPais = zyRequestApi?.bioPais?.takeIf { it.isNotBlank() } ?: "PE" zyRequest.idFlujo = zyRequestApi?.idFlujo?.takeIf { it != 0 } ?: 185 zyRequest.isDialogActivated = true zyRequest.url = zyRequestApi?.url?.takeIf { it.isNotBlank() } ?: "POC" zyRequest.flujoExterno = "" iZyApiCapturaFacial.zyCapturaFacial(zyRequest) } companion object { private const val TAG = "ZyTFacialModule" } }