submitKycRequest function

Future<Either<VerificationFailure, Map<String, dynamic>>> submitKycRequest({
  1. required Map<String, dynamic> userData,
  2. required Map<String, dynamic> idData,
  3. required String verificationSessionId,
  4. required String apiKey,
})

Implementation

Future<Either<VerificationFailure, Map<String, dynamic>>> submitKycRequest(
    {required Map<String, dynamic> userData,
    required Map<String, dynamic> idData,
    required String verificationSessionId,
    required String apiKey}) async {
  try {
    var requestBody = KycRequestDto().toJson(
      userData,
      idData,
      verificationSessionId,
    );

    final http.Response response = await http.post(
      Uri.parse('${apiBaseUrl}api/request/'),
      headers: <String, String>{
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'x-api-key': apiKey
      },
      body: jsonEncode(requestBody),
    );

    var result = jsonDecode(response.body);

    if (kDebugMode) {
      print(result);
    }

    if (!result.containsKey('error')) {
      var data = await KycRequestDto().fromJson(
        userData,
        idData,
        result['frontImage'],
        result['backImage'],
        result['sideImage'],
        result['faceImage'],
        apiKey,
        verificationSessionId,
      );
      return right(data);
    } else {
      if (kDebugMode) {
        print(result);
      }

      return left(VerificationFailure.serverError(result['error']));
    }
  } catch (e) {
    if (kDebugMode) {
      print(e);
    }
    return left(VerificationFailure.serverError(e.toString()));
  }
}