fromJson static method

CallModel? fromJson(
  1. Map jsonMap,
  2. ILogsModel? logs
)

Creates instance of CallModel with values read from json

Implementation

static CallModel? fromJson(Map<dynamic, dynamic> jsonMap, ILogsModel? logs) {
  //Read required attributes
  int? _myCallId;
  String? _accUri, _remoteExt;
  bool? _isIncoming, _hasSecureMedia, _hasVideo;
  jsonMap.forEach((key, value) {
    if ((key == 'myCallId') && (value is int)) {
      _myCallId = value;
    } else if ((key == 'accUri') && (value is String)) {
      _accUri = value;
    } else if ((key == 'remoteExt') && (value is String)) {
      _remoteExt = value;
    } else if ((key == 'isIncoming') && (value is bool)) {
      _isIncoming = value;
    } else if ((key == 'hasSecureMedia') && (value is bool)) {
      _hasSecureMedia = value;
    } else if ((key == 'hasVideo') && (value is bool)) {
      _hasVideo = value;
    }
  });
  //Check if present
  if ((_myCallId == null) ||
      (_accUri == null) ||
      (_remoteExt == null) ||
      (_isIncoming == null) ||
      (_hasSecureMedia == null) ||
      (_hasVideo == null)) {
    return null;
  }

  //Create new inst
  CallModel call = CallModel(
    _myCallId!,
    _accUri!,
    _remoteExt!,
    _isIncoming!,
    _hasSecureMedia!,
    _hasVideo!,
    logs,
  );

  //Read the rest values
  jsonMap.forEach((key, value) {
    if ((key == 'displName') && (value is String)) {
      call.displName = value;
    } else if ((key == 'receivedDtmf') && (value is String)) {
      call._receivedDtmf = value;
    } else if ((key == 'response') && (value is String)) {
      call._response = value;
    } else if ((key == 'state') && (value is int)) {
      call._state = CallState.from(value);
    } else if ((key == 'holdState') && (value is int)) {
      call._holdState = HoldState.from(value);
    } else if ((key == 'startTime') && (value is int)) {
      call._startTime = DateTime.fromMillisecondsSinceEpoch(value);
    }
    if ((key == 'playerId') && (value is int)) {
      call._playerId = value;
    } else if ((key == 'isMicMuted') && (value is bool)) {
      call._isMicMuted = value;
    } else if ((key == 'isCamMuted') && (value is bool)) {
      call._isCamMuted = value;
    } else if ((key == 'isRecStarted') && (value is bool)) {
      call._isRecStarted = value;
    } else if ((key == 'isUpgradingToVideo') && (value is bool)) {
      call._isUpgradingToVideo = value;
    } else if ((key == 'hasVideoUpgradeRequest') && (value is bool)) {
      call._hasVideoUpgradeRequest = value;
    }
  });
  //Update duration
  call.calcDuration();
  return call;
}