SocketData.fromFullData constructor

SocketData.fromFullData(
  1. Map<String, dynamic>? fullData
)

Implementation

SocketData.fromFullData(this.fullData) {
  fullData!["message_id"] ??= Statics.getRandomId(30);

  schemeValid = fullData!.containsKey("data") &&
      fullData!.containsKey("message_id") &&
      fullData!.containsKey("message_type");

  if (!schemeValid) {
    throw Exception("Socket Data Scheme isn't valid \n"
        "\"data\" is ${fullData!.containsKey("data")}\n"
        "\"message_id\" is ${fullData!.containsKey("message_id")}\n"
        "\"message_type\" is ${fullData!.containsKey("message_type")}");
  }

  messageId = fullData!["message_id"];
  type = fullData!["message_type"];

  isEncrypted =
      fullData!["data"] is String && fullData!["data"].startsWith("enc");
  if (isEncrypted) {
    fullData!["data"] = fullData!["data"].replaceFirst("enc", "");
  }
  isDecrypted = !isEncrypted;
}