1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-29 08:16:28 +00:00
comunicmobile/lib/models/ws_message.dart

37 lines
849 B
Dart
Raw Normal View History

2020-04-18 13:24:57 +00:00
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),
2020-04-18 13:24:57 +00:00
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) {
2021-02-06 12:26:35 +00:00
return WsMessage(id: m["id"] ?? "", title: m["title"], data: m["data"]);
}
2020-04-18 13:24:57 +00:00
/// 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;
}