chatEvent method
Constructs a ChatEvent from the ChatEventsVersionedMixin$Events.
Implementation
ChatEvent chatEvent(ChatEventsVersionedMixin$Events e) {
Log.trace('chatEvent($e)', '$runtimeType');
if (e.$$typename == 'ChatClearedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatClearedEvent;
return ChatClearedEvent(e.chatId, node.at);
} else if (e.$$typename == 'ChatUnreadItemsCountUpdatedEvent') {
var node =
e as ChatEventsVersionedMixin$Events$ChatUnreadItemsCountUpdatedEvent;
return ChatUnreadItemsCountUpdatedEvent(e.chatId, node.count);
} else if (e.$$typename == 'ChatItemPostedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatItemPostedEvent;
return ChatItemPostedEvent(e.chatId, node.item.toDto());
} else if (e.$$typename == 'ChatLastItemUpdatedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatLastItemUpdatedEvent;
return ChatLastItemUpdatedEvent(e.chatId, node.lastItem?.toDto());
} else if (e.$$typename == 'ChatItemHiddenEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatItemHiddenEvent;
return ChatItemHiddenEvent(e.chatId, node.itemId);
} else if (e.$$typename == 'ChatMutedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatMutedEvent;
return ChatMutedEvent(e.chatId, node.duration.toModel());
} else if (e.$$typename == 'ChatTypingStartedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatTypingStartedEvent;
_userRepo.put(node.user.toDto());
return ChatTypingStartedEvent(e.chatId, node.user.toModel());
} else if (e.$$typename == 'EventChatUnmuted') {
return EventChatUnmuted(e.chatId);
} else if (e.$$typename == 'ChatTypingStoppedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatTypingStoppedEvent;
_userRepo.put(node.user.toDto());
return ChatTypingStoppedEvent(e.chatId, node.user.toModel());
} else if (e.$$typename == 'ChatHiddenEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatHiddenEvent;
return ChatHiddenEvent(e.chatId, node.at);
} else if (e.$$typename == 'ChatItemDeletedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatItemDeletedEvent;
return ChatItemDeletedEvent(e.chatId, node.itemId);
} else if (e.$$typename == 'ChatItemEditedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatItemEditedEvent;
return ChatItemEditedEvent(
e.chatId,
node.itemId,
node.text == null ? null : EditedMessageText(node.text!.changed),
node.attachments?.changed.map((e) => e.toModel()).toList(),
node.repliesTo?.changed.map((e) => e.toDto()).toList(),
);
} else if (e.$$typename == 'ChatCallStartedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatCallStartedEvent;
return ChatCallStartedEvent(e.chatId, node.call.toModel());
} else if (e.$$typename == 'ChatCallFinishedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatCallFinishedEvent;
return ChatCallFinishedEvent(e.chatId, node.call.toModel(), node.reason);
} else if (e.$$typename == 'ChatCallMemberLeftEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatCallMemberLeftEvent;
_userRepo.put(node.user.toDto());
return ChatCallMemberLeftEvent(e.chatId, node.user.toModel(), node.at);
} else if (e.$$typename == 'ChatCallMemberJoinedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatCallMemberJoinedEvent;
_userRepo.put(node.user.toDto());
return ChatCallMemberJoinedEvent(
e.chatId,
node.call.toModel(),
node.user.toModel(),
node.at,
);
} else if (e.$$typename == 'ChatCallMemberRedialedEvent') {
var node =
e as ChatEventsVersionedMixin$Events$ChatCallMemberRedialedEvent;
_userRepo.put(node.user.toDto());
return ChatCallMemberRedialedEvent(
e.chatId,
node.at,
node.callId,
node.call.toModel(),
node.user.toModel(),
node.byUser.toModel(),
);
} else if (e.$$typename == 'ChatDeliveredEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatDeliveredEvent;
return ChatDeliveredEvent(e.chatId, node.until);
} else if (e.$$typename == 'ChatReadEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatReadEvent;
_userRepo.put(node.byUser.toDto());
return ChatReadEvent(e.chatId, node.byUser.toModel(), node.at);
} else if (e.$$typename == 'ChatCallDeclinedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatCallDeclinedEvent;
_userRepo.put(node.user.toDto());
return ChatCallDeclinedEvent(
e.chatId,
node.callId,
node.call.toModel(),
node.user.toModel(),
node.at,
);
} else if (e.$$typename == 'ChatTotalItemsCountUpdatedEvent') {
var node =
e as ChatEventsVersionedMixin$Events$ChatTotalItemsCountUpdatedEvent;
return ChatTotalItemsCountUpdatedEvent(e.chatId, node.count);
} else if (e.$$typename == 'ChatCallMovedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatCallMovedEvent;
_userRepo.put(node.user.toDto());
return ChatCallMovedEvent(
e.chatId,
node.callId,
node.call.toModel(),
node.newChatId,
node.newChat.toModel(),
node.newCallId,
node.newCall.toModel(),
node.user.toModel(),
node.at,
);
} else if (e.$$typename == 'ChatArchivedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatArchivedEvent;
return ChatArchivedEvent(e.chatId, node.at);
} else if (e.$$typename == 'ChatUnarchivedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatUnarchivedEvent;
return ChatUnarchivedEvent(e.chatId, node.at);
} else if (e.$$typename == 'ChatFavoritedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatFavoritedEvent;
return ChatFavoritedEvent(e.chatId, node.at, node.position);
} else if (e.$$typename == 'ChatUnfavoritedEvent') {
var node = e as ChatEventsVersionedMixin$Events$ChatUnfavoritedEvent;
return ChatUnfavoritedEvent(e.chatId, node.at);
} else if (e.$$typename == 'ChatCallConversationStartedEvent') {
var node =
e as ChatEventsVersionedMixin$Events$ChatCallConversationStartedEvent;
return ChatCallConversationStartedEvent(
e.chatId,
node.callId,
node.at,
node.call.toModel(),
);
} else if (e.$$typename == 'ChatCallAnswerTimeoutPassedEvent') {
var node =
e as ChatEventsVersionedMixin$Events$ChatCallAnswerTimeoutPassedEvent;
return ChatCallAnswerTimeoutPassedEvent(e.chatId, node.callId);
} else {
throw UnimplementedError('Unknown ChatEvent: ${e.$$typename}');
}
}