startDocAbsentWithIdNumber method

  1. @override
Future<BlusaltFullIdentityResultResponse?> startDocAbsentWithIdNumber({
  1. required String apiKey,
  2. required String appName,
  3. required String clientId,
  4. required bool isDev,
  5. required DocumentType documentType,
  6. required String documentNumber,
  7. String? webhookUrl,
  8. String? reference,
  9. bool startProcessOnGettingToFirstScreen = false,
  10. bool showLivenessResult = true,
  11. LivenessFacialComparisonType livenessFacialComparisonType = LivenessFacialComparisonType.motional,
  12. double? thresholdInPercent,
  13. int? timeoutDurationInSec,
})
override

Implementation

@override
Future<BlusaltFullIdentityResultResponse?> startDocAbsentWithIdNumber({
  required String apiKey,
  required String appName,
  required String clientId,
  required bool isDev,
  required DocumentType documentType,
  required String documentNumber,
  String? webhookUrl,
  String? reference,
  bool startProcessOnGettingToFirstScreen = false,
  bool showLivenessResult = true,
  LivenessFacialComparisonType livenessFacialComparisonType =
      LivenessFacialComparisonType.motional,
  double? thresholdInPercent,
  int? timeoutDurationInSec,
}) async {
  try {
    if (thresholdInPercent != null &&
        (thresholdInPercent < 0 || thresholdInPercent > 100)) {
      return BlusaltFullIdentityResultResponse(
          blusaltFullIdentityProcess:
              BlusaltFullIdentityProcess.notImplemented,
          message: "Threshold must be between 0 and 100");
    }

    final result =
        await methodChannel.invokeMethod('startDocAbsentWithIdNumber', {
      'apiKey': apiKey,
      'appName': appName,
      'clientId': clientId,
      'isDev': isDev,
      'documentType': documentType.name.toUpperCase(),
      'documentNumber': documentNumber,
      'webhookUrl': webhookUrl,
      'reference': reference,
      'startProcessOnGettingToFirstScreen':
          startProcessOnGettingToFirstScreen,
      'showLivenessResult': showLivenessResult,
      'livenessFacialComparisonType':
          livenessFacialComparisonType.name.toUpperCase(),
      'thresholdInPercent': thresholdInPercent,
      'timeoutDurationInSec': timeoutDurationInSec,
    });

    if (result != null) {
      var response = json.decode(result);
      return _parseFullIdentityResponse(response, reference);
    } else {
      return BlusaltFullIdentityResultResponse(
          blusaltFullIdentityProcess:
              BlusaltFullIdentityProcess.notImplemented,
          message: "Something went wrong");
    }
  } on PlatformException catch (exception) {
    return BlusaltFullIdentityResultResponse(
        blusaltFullIdentityProcess: BlusaltFullIdentityProcess.notImplemented,
        exception: exception,
        message: exception.message,
        code: exception.code);
  } catch (e) {
    return BlusaltFullIdentityResultResponse(
        blusaltFullIdentityProcess: BlusaltFullIdentityProcess.notImplemented,
        message: e.toString());
  }
}