mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-25 14:29:22 +00:00
37 lines
849 B
Dart
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;
|
|
}
|