OpenContacts/lib/models/message.dart

36 lines
925 B
Dart
Raw Normal View History

2023-04-29 15:26:12 -04:00
import 'dart:developer';
enum MessageType {
unknown,
text,
sound,
2023-04-29 16:21:00 -04:00
sessionInvite,
object,
2023-04-29 15:26:12 -04:00
}
class Message {
final String id;
final String recipientId;
final String senderId;
final MessageType type;
final String content;
Message({required this.id, required this.recipientId, required this.senderId, required this.type, required this.content});
factory Message.fromMap(Map map) {
final typeString = map["messageType"] as String?;
2023-04-29 16:21:00 -04:00
final type = MessageType.values.firstWhere((element) => element.name.toLowerCase() == typeString?.toLowerCase(),
2023-04-29 15:26:12 -04:00
orElse: () => MessageType.unknown,
);
if (type == MessageType.unknown && typeString != null) {
log("Unknown MessageType '$typeString' in response");
}
return Message(
id: map["id"],
2023-04-29 16:21:00 -04:00
recipientId: map["recipientId"],
senderId: map["senderId"],
2023-04-29 15:26:12 -04:00
type: type,
content: map["content"],
);
}
}