getCertStatus function

Future<ApacuanaSuccess<Map<String, dynamic>>> getCertStatus({
  1. bool isCertificateInDevice = false,
  2. Map<String, dynamic>? userData,
})

Obtiene el estatus del certificado del usuario. Retorna un objeto con la clave status que contiene { text, descriptionText }.

Implementation

Future<ApacuanaSuccess<Map<String, dynamic>>> getCertStatus({
  bool isCertificateInDevice = false,
  Map<String, dynamic>? userData,
}) async {
  final cfg = getConfig();

  final statusRaw = getCertificateStatus(
    userData ?? cfg.userData,
    isCertificateInDevice,
    cfg.integrationType,
  );

  print('Raw certificate status: $statusRaw');

  // Intentamos usar la versión tipada (enum) si es posible.
  final parsedEnum = parseStatusFromRaw(statusRaw);
  if (parsedEnum != null) {
    return ApacuanaSuccess<Map<String, dynamic>>({
      'status': {
        'text': parsedEnum.text,
        'descriptionText': parsedEnum.descriptionText,
      }
    });
  }

  // Fallback al mapa "compat" con claves string
  final compat = PARSE_STATUS[statusRaw];
  if (compat != null) {
    return ApacuanaSuccess<Map<String, dynamic>>({
      'status': {
        'text': compat['text'] ?? '',
        'descriptionText': compat['descriptionText'],
      }
    });
  }

  // Si no se reconoce el estado, devolvemos uno genérico.
  return ApacuanaSuccess<Map<String, dynamic>>({
    'status': {
      'text': statusRaw,
      'descriptionText': null,
    }
  });
}