1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-26 23:09:21 +00:00
comunicmobile/lib/models/ws_message.dart
2021-02-06 13:26:35 +01:00

37 lines
849 B
Dart

import 'dart:convert';
import 'package:flutter/widgets.dart';
/// 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;
}