1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-22 12:59:21 +00:00
comunicmobile/lib/models/ws_message.dart

35 lines
806 B
Dart

import 'dart:convert';
/// WebSocket message
///
/// @author Pierre Hubert
class WsMessage {
final String id;
final String title;
final dynamic data;
const WsMessage({
required this.id,
required this.title,
required this.data,
}) : assert(id != null),
assert(title != null),
assert(title.length > 0);
/// Construct a message from a JSON document (messages coming from the server)
static WsMessage fromJSON(final Map<dynamic, dynamic> m) {
return WsMessage(id: m["id"] ?? "", title: m["title"], data: m["data"]);
}
/// Turn a message into a JSON object to send it to the API
String toJSON() =>
jsonEncode({
"id": id,
"title": title,
"data": data,
});
bool get hasId => this.id != null && this.id.isNotEmpty;
}