registerBiometric method
Implementation
Future<Map<String, dynamic>> registerBiometric(List<dynamic> args) async {
final data = processArgs(args);
final missingRequiredFields = validateRequiredFields(data, [
"publicKey",
"credentialId",
]);
if (missingRequiredFields.isNotEmpty) {
return RegisterBiometricModel(
success: false,
message: "Registration Failed. Missing required fields",
device: await getDeviceInfo(),
errorCodes: [
Status.jsMissingFields.name,
],
).toMap();
}
final String publicKey = data["publicKey"];
final String credentialId = data["credentialId"];
final result = await sl<BiometricService>().register(
publicKey,
credentialId,
);
if (result == BiometricStatus.success) {
await sl<StorageService>().writeBioPublicKey(publicKey, credentialId);
}
return RegisterBiometricModel(
success: result == BiometricStatus.success,
message: (result == BiometricStatus.success)
? "Registration Success"
: result == BiometricStatus.bioNotAvailable
? "No biometrics found in the device"
: "Registration Failed.",
device: await getDeviceInfo(),
errorCodes: [
if (result != BiometricStatus.success) result.name,
],
).toMap();
}