SmartApiEnvelope.defaultParse constructor

SmartApiEnvelope.defaultParse(
  1. dynamic json
)

The default response parser, used when no custom SmartApiConfig.responseParser is set. Reads keys according to SmartApiConfigKeyMapHolder.keyMap (set via SmartApiConfig.init(keyMap: ...)).

Implementation

factory SmartApiEnvelope.defaultParse(dynamic json) {
  final km = SmartApiConfigKeyMapHolder.keyMap;
  if (json is! Map) {
    return SmartApiEnvelope(success: false, message: json?.toString() ?? "");
  }

  dynamic successRaw;
  for (final k in km.successKeys) {
    if (json.containsKey(k)) {
      successRaw = json[k];
      break;
    }
  }
  final success = km.successValues.contains(successRaw);

  String message = "";
  for (final k in km.messageKeys) {
    if (json[k] != null) {
      message = json[k].toString();
      break;
    }
  }

  int? statusCode;
  for (final k in km.statusCodeKeys) {
    if (json[k] != null) {
      statusCode = json[k] is int ? json[k] as int : int.tryParse(json[k].toString());
      break;
    }
  }

  dynamic data;
  for (final k in km.dataKeys) {
    if (json.containsKey(k)) {
      data = json[k];
      break;
    }
  }

  return SmartApiEnvelope(success: success, message: message, statusCode: statusCode, data: data);
}