authenticateFacialService function

Future<Map<String, dynamic>> authenticateFacialService(
  1. BuildContext context,
  2. {required String? tokenFaceImage,
  3. required String? bestImageTemplateRaw,
  4. required int method,
  5. required String? ciFrontBase64,
  6. required String? ciBackBase64,
  7. required String? selfieBase64}
)

Implementation

Future<Map<String, dynamic>> authenticateFacialService(
  BuildContext context, {
  required String? tokenFaceImage,
  required String? bestImageTemplateRaw,
  required int method,
  required String? ciFrontBase64,
  required String? ciBackBase64,
  required String? selfieBase64,
}) async {
  final bool internetStatus = await checkInternetConnection();

  if (!internetStatus) {
    Transitions(
      context: context,
      child: const NoInternetPage(),
    );
    return <String, dynamic>{
      'no_network': internetStatus,
    };
  }

  final Box<MyAccountModel> userBox = Hive.box('user');

  final http.Response response = await http.post(
    Uri.parse(
      '${ServicesEnvironment.protocol}${ServicesEnvironment.authority}${ServicesEnvironment.unencodedPath}$_endPoint',
    ),
    headers: <String, String>{
      'Content-Type': 'application/json; charset=utf-8',
      'Authorization': 'Bearer ${userBox.get('user')!.token}',
    },
    body: json.encode(
      <String, dynamic>{
        'token1': tokenFaceImage,
        'token2': bestImageTemplateRaw,
        'method': method,
        'ci_front_base64': ciFrontBase64,
        'ci_back_base64': ciBackBase64,
        'selfie_base64': selfieBase64,
      },
    ),
  );

  Map<String, dynamic> decodedResponse;

  try {
    decodedResponse = json.decode(response.body);
  } catch (exception) {
    return Future.error(GlobalMessagesEnvironment.genericError);
  }

  return decodedResponse;
}