@ha_tecno/react-native-sdk
Version:
React Native SDK for biometric authentication, liveness detection, and fingerprint recognition
94 lines (93 loc) • 2.99 kB
JavaScript
;
import { Platform } from 'react-native';
import { getModel } from 'react-native-device-info';
import { v4 as uuid } from 'uuid';
import { api } from "../http/api.js";
export const calibrationService = {
registerOperationPointsBiometrics: async ({
images,
exposure,
exposureMin,
exposureMax,
exposureScaleZeroToOne,
zoom,
zoomMin,
zoomMax,
zoomScaleZeroToOne,
deviceModel
}) => {
try {
const device_model = deviceModel || getModel();
const payload = {
device_model,
images,
exposure,
exposureMin,
exposureMax,
exposureScaleZeroToOne,
zoom,
zoomMin,
zoomMax,
zoomScaleZeroToOne,
operationalSystem: Platform.OS
};
const data = await api.post('/v2/images-quality', payload);
if (data.status === 400) {
throw new Error('Houve um problema ao tentar cadastrar o ponto de operação, tente novamente!');
}
return {
status: data.status,
message: data.message || 'Cadastro do dispositivo foi realizado com sucesso! Agora você pode acessar o LiveID.'
};
} catch (error) {
console.error('[Biometric Calibration Error]:', error);
return {
status: error?.status || 400,
message: error?.message || 'Erro ao calibrar pontos de operação para biometria'
};
}
},
registerOperationPointsLiveness: async ({
videoPath,
exposure,
exposureMin,
exposureMax,
exposureScaleZeroToOne,
deviceModel
}) => {
try {
const uuidv4 = uuid();
const device_model = deviceModel || getModel();
const formData = new FormData();
formData.append('video', {
uri: Platform.select({
ios: videoPath,
android: `file://${videoPath}`
}),
type: 'video/mp4',
name: `${uuidv4}.mp4`
});
formData.append('video_key', uuidv4);
formData.append('device_model', device_model);
formData.append('operationalSystem', Platform.OS);
formData.append('exposure', exposure.toString());
formData.append('exposureMin', exposureMin.toString());
formData.append('exposureMax', exposureMax.toString());
formData.append('exposureScaleZeroToOne', exposureScaleZeroToOne.toString());
const data = await api.postFormData('/v1/video-quality', formData);
const hasConfig = data.config !== undefined;
return {
status: data.status,
message: hasConfig ? 'Cadastro do dispositivo foi realizado com sucesso! Agora você pode acessar o LiveID.' : 'Tudo certo! Repita o processo mais uma vez!',
hasConfig
};
} catch (error) {
console.error('[Liveness Calibration Error]:', error);
return {
status: error?.status || 400,
message: error?.message || 'Continue, faça com o próximo ponto de operação.'
};
}
}
};
//# sourceMappingURL=calibrationService.js.map