Implemented RichObjectString in text messages

This commit is contained in:
2023-02-21 16:59:20 +01:00
parent cee122602f
commit 5f140821a8
7 changed files with 119 additions and 86 deletions

View File

@ -33,6 +33,7 @@ class GetChatResponseObject {
bool isReplyable;
String referenceId;
String message;
@JsonKey(fromJson: _fromJson) Map<String, RichObjectString>? messageParameters;
GetChatResponseObject(
this.id,
@ -45,9 +46,45 @@ class GetChatResponseObject {
this.messageType,
this.isReplyable,
this.referenceId,
this.message);
this.message,
this.messageParameters);
factory GetChatResponseObject.fromJson(Map<String, dynamic> json) => _$GetChatResponseObjectFromJson(json);
Map<String, dynamic> toJson() => _$GetChatResponseObjectToJson(this);
}
Map<String, RichObjectString>? _fromJson(json) {
if(json is Map<String, dynamic>) {
Map<String, RichObjectString> data = {};
for (var element in json.keys) {
data.putIfAbsent(element, () => RichObjectString.fromJson(json[element]));
}
return data;
}
return null;
}
@JsonSerializable(explicitToJson: true)
class RichObjectString {
RichObjectStringObjectType type;
String id;
String name;
String? path;
String? link;
RichObjectString(this.type, this.id, this.name, this.path, this.link);
factory RichObjectString.fromJson(Map<String, dynamic> json) => _$RichObjectStringFromJson(json);
Map<String, dynamic> toJson() => _$RichObjectStringToJson(this);
}
enum RichObjectStringObjectType {
@JsonValue("user") user,
@JsonValue("group") group,
@JsonValue("file") file,
@JsonValue("guest") guest,
@JsonValue("highlight") highlight,
}