move on with the migration

This commit is contained in:
Salvatore Giordano
2021-04-19 12:40:00 +02:00
parent 8a92392914
commit af135ecb9c
37 changed files with 653 additions and 535 deletions
+146 -89
View File
@@ -59,13 +59,12 @@ class Channel {
/// Returns true if the channel is muted
bool get isMuted =>
_client.state.user?.channelMutes
.any((element) => element.channel!.cid == cid) ==
.any((element) => element.channel.cid == cid) ==
true;
/// Returns true if the channel is muted as a stream
Stream<bool>? get isMutedStream => _client.state.userStream.map((event) =>
event!.channelMutes.any((element) => element.channel!.cid == cid) ==
true);
event!.channelMutes.any((element) => element.channel.cid == cid) == true);
/// True if the channel is a group
bool get isGroup => memberCount != 2;
@@ -74,85 +73,130 @@ class Channel {
bool get isDistinct => id?.startsWith('!members') == true;
/// Channel configuration
ChannelConfig? get config => state?._channelState?.channel?.config;
ChannelConfig? get config {
_checkInitialized();
return state?._channelState?.channel?.config;
}
/// Channel configuration as a stream
Stream<ChannelConfig?>? get configStream =>
state?.channelStateStream.map((cs) => cs!.channel?.config);
Stream<ChannelConfig?>? get configStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.config);
}
/// Channel user creator
User? get createdBy => state?._channelState?.channel?.createdBy;
User? get createdBy {
_checkInitialized();
return state?._channelState?.channel?.createdBy;
}
/// Channel user creator as a stream
Stream<User?>? get createdByStream =>
state?.channelStateStream.map((cs) => cs!.channel?.createdBy);
Stream<User?>? get createdByStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.createdBy);
}
/// Channel frozen status
bool? get frozen => state?._channelState?.channel?.frozen;
bool? get frozen {
_checkInitialized();
return state?._channelState?.channel?.frozen;
}
/// Channel frozen status as a stream
Stream<bool?>? get frozenStream =>
state?.channelStateStream.map((cs) => cs!.channel?.frozen);
Stream<bool?>? get frozenStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.frozen);
}
/// Channel creation date
DateTime? get createdAt => state?._channelState?.channel?.createdAt;
DateTime? get createdAt {
_checkInitialized();
return state?._channelState?.channel?.createdAt;
}
/// Channel creation date as a stream
Stream<DateTime?>? get createdAtStream =>
state?.channelStateStream.map((cs) => cs!.channel?.createdAt);
Stream<DateTime?>? get createdAtStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.createdAt);
}
/// Channel last message date
DateTime? get lastMessageAt => state?._channelState?.channel?.lastMessageAt;
DateTime? get lastMessageAt {
_checkInitialized();
return state?._channelState?.channel?.lastMessageAt;
}
/// Channel last message date as a stream
Stream<DateTime?>? get lastMessageAtStream =>
state?.channelStateStream.map((cs) => cs!.channel?.lastMessageAt);
Stream<DateTime?>? get lastMessageAtStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.lastMessageAt);
}
/// Channel updated date
DateTime? get updatedAt => state?._channelState?.channel?.updatedAt;
DateTime? get updatedAt {
_checkInitialized();
return state?._channelState?.channel?.updatedAt;
}
/// Channel updated date as a stream
Stream<DateTime?>? get updatedAtStream =>
state?.channelStateStream.map((cs) => cs!.channel?.updatedAt);
Stream<DateTime?>? get updatedAtStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.updatedAt);
}
/// Channel deletion date
DateTime? get deletedAt => state?._channelState?.channel?.deletedAt;
DateTime? get deletedAt {
_checkInitialized();
return state?._channelState?.channel?.deletedAt;
}
/// Channel deletion date as a stream
Stream<DateTime?>? get deletedAtStream =>
state?.channelStateStream.map((cs) => cs!.channel?.deletedAt);
Stream<DateTime?>? get deletedAtStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.deletedAt);
}
/// Channel member count
int? get memberCount => state?._channelState?.channel?.memberCount;
int? get memberCount {
_checkInitialized();
return state?._channelState?.channel?.memberCount;
}
/// Channel member count as a stream
Stream<int?>? get memberCountStream =>
state?.channelStateStream.map((cs) => cs!.channel?.memberCount);
Stream<int?>? get memberCountStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.memberCount);
}
/// Channel id
String? get id => state?._channelState?.channel?.id ?? _id;
/// Channel id as a stream
Stream<String?>? get idStream =>
state?.channelStateStream.map((cs) => cs!.channel?.id ?? _id);
/// Channel cid
String? get cid => state?._channelState?.channel?.cid ?? _cid;
/// Channel team
String? get team => state?._channelState?.channel?.team;
/// Channel cid as a stream
Stream<String?>? get cidStream =>
state?.channelStateStream.map((cs) => cs!.channel?.cid ?? _cid);
String? get team {
_checkInitialized();
return state?._channelState?.channel?.team;
}
/// Channel extra data
Map<String, dynamic>? get extraData =>
state?._channelState?.channel?.extraData ?? _extraData;
/// Channel extra data as a stream
Stream<Map<String, dynamic>?>? get extraDataStream =>
state?.channelStateStream.map((cs) => cs!.channel?.extraData);
Stream<Map<String, dynamic>?>? get extraDataStream {
_checkInitialized();
return state?.channelStateStream.map((cs) => cs!.channel?.extraData);
}
/// The main Stream chat client
StreamChatClient get client => _client;
@@ -205,14 +249,14 @@ class Channel {
throw Exception('Error, Message not found');
}
final attachments = message.attachments!.where((it) {
final attachments = message.attachments.where((it) {
if (it.uploadState.isSuccess) return false;
return attachmentIds.contains(it.id);
});
if (attachments.isEmpty) {
client.logger.info('No attachments available to upload');
if (message.attachments!.every((it) => it.uploadState.isSuccess)) {
if (message.attachments.every((it) => it.uploadState.isSuccess)) {
_messageAttachmentsUploadCompleter.remove(messageId)?.complete(message);
}
return Future.value();
@@ -222,9 +266,9 @@ class Channel {
void updateAttachment(Attachment attachment) {
final index =
message.attachments!.indexWhere((it) => it.id == attachment.id);
message.attachments.indexWhere((it) => it.id == attachment.id);
if (index != -1) {
message.attachments![index] = attachment;
message.attachments[index] = attachment;
state?.addMessage(message);
}
}
@@ -252,13 +296,13 @@ class Channel {
it.file!,
onSendProgress: onSendProgress,
cancelToken: cancelToken,
).then((it) => it!.file!);
).then((it) => it!.file);
} else {
future = sendFile(
it.file!,
onSendProgress: onSendProgress,
cancelToken: cancelToken,
).then((it) => it!.file!);
).then((it) => it!.file);
}
_cancelableAttachmentUploadRequest[it.id] = cancelToken;
return future.then((url) {
@@ -288,7 +332,7 @@ class Channel {
_cancelableAttachmentUploadRequest.remove(it.id);
});
})).whenComplete(() {
if (message.attachments!.every((it) => it.uploadState.isSuccess)) {
if (message.attachments.every((it) => it.uploadState.isSuccess)) {
_messageAttachmentsUploadCompleter.remove(messageId)?.complete(message);
}
});
@@ -313,7 +357,7 @@ class Channel {
user: _client.state.user,
quotedMessage: quotedMessage,
status: MessageSendingStatus.sending,
attachments: message.attachments?.map(
attachments: message.attachments.map(
(it) {
if (it.uploadState.isSuccess) return it;
return it.copyWith(uploadState: const UploadState.preparing());
@@ -324,7 +368,7 @@ class Channel {
state?.addMessage(message);
try {
if (message.attachments?.any((it) => !it.uploadState.isSuccess) == true) {
if (message.attachments.any((it) => !it.uploadState.isSuccess) == true) {
final attachmentsUploadCompleter = Completer<Message>();
_messageAttachmentsUploadCompleter[message.id] =
attachmentsUploadCompleter;
@@ -332,15 +376,15 @@ class Channel {
// ignore: unawaited_futures
_uploadAttachments(
message.id,
message.attachments!.map((it) => it.id),
message.attachments.map((it) => it.id),
);
// ignore: parameter_assignments
message = await attachmentsUploadCompleter.future;
}
final response = await _client.sendMessage(message, id, type);
state?.addMessage(response.message!);
final response = await _client.sendMessage(message, id!, type!);
state?.addMessage(response.message);
return response;
} catch (error) {
if (error is DioError && error.type != DioErrorType.response) {
@@ -364,7 +408,7 @@ class Channel {
message = message.copyWith(
status: MessageSendingStatus.updating,
updatedAt: message.updatedAt,
attachments: message.attachments?.map(
attachments: message.attachments.map(
(it) {
if (it.uploadState.isSuccess) return it;
return it.copyWith(uploadState: const UploadState.preparing());
@@ -375,7 +419,7 @@ class Channel {
state?.addMessage(message);
try {
if (message.attachments?.any((it) => !it.uploadState.isSuccess) == true) {
if (message.attachments.any((it) => !it.uploadState.isSuccess) == true) {
final attachmentsUploadCompleter = Completer<Message>();
_messageAttachmentsUploadCompleter[message.id] =
attachmentsUploadCompleter;
@@ -383,7 +427,7 @@ class Channel {
// ignore: unawaited_futures
_uploadAttachments(
message.id,
message.attachments!.map((it) => it.id),
message.attachments.map((it) => it.id),
);
// ignore: parameter_assignments
@@ -392,13 +436,11 @@ class Channel {
final response = await _client.updateMessage(message);
final m = response.message?.copyWith(
final m = response.message.copyWith(
ownReactions: message.ownReactions,
);
if (m != null) {
state?.addMessage(m);
}
state?.addMessage(m);
return response;
} catch (error) {
@@ -489,28 +531,32 @@ class Channel {
AttachmentFile file, {
ProgressCallback? onSendProgress,
CancelToken? cancelToken,
}) =>
_client.sendFile(
file,
id,
type,
onSendProgress: onSendProgress,
cancelToken: cancelToken,
);
}) {
_checkInitialized();
return _client.sendFile(
file,
id!,
type!,
onSendProgress: onSendProgress,
cancelToken: cancelToken,
);
}
/// Send an image to this channel
Future<SendImageResponse?> sendImage(
AttachmentFile file, {
ProgressCallback? onSendProgress,
CancelToken? cancelToken,
}) =>
_client.sendImage(
file,
id,
type,
onSendProgress: onSendProgress,
cancelToken: cancelToken,
);
}) {
_checkInitialized();
return _client.sendImage(
file,
id!,
type!,
onSendProgress: onSendProgress,
cancelToken: cancelToken,
);
}
/// A message search.
Future<SearchMessagesResponse?> search({
@@ -535,15 +581,29 @@ class Channel {
Future<EmptyResponse?> deleteFile(
String url, {
CancelToken? cancelToken,
}) =>
_client.deleteFile(url, id, type, cancelToken: cancelToken);
}) {
_checkInitialized();
return _client.deleteFile(
url,
id!,
type!,
cancelToken: cancelToken,
);
}
/// Delete an image from this channel
Future<EmptyResponse?> deleteImage(
String url, {
CancelToken? cancelToken,
}) =>
_client.deleteImage(url, id, type, cancelToken: cancelToken);
}) {
_checkInitialized();
return _client.deleteImage(
url,
id!,
type!,
cancelToken: cancelToken,
);
}
/// Send an event on this channel
Future<EmptyResponse> sendEvent(Event event) {
@@ -916,9 +976,7 @@ class Channel {
final messages = res.messages;
if (messages != null) {
state?.updateChannelState(ChannelState(messages: messages));
}
state?.updateChannelState(ChannelState(messages: messages));
return res;
}
@@ -1198,11 +1256,10 @@ class Channel {
}
void _checkInitialized() {
if (!_initializedCompleter.isCompleted) {
throw Exception(
"Channel $cid hasn't been initialized yet. Make sure to call .watch()"
' or to instantiate the client using [Channel.fromState]');
}
assert(
!_initializedCompleter.isCompleted,
"Channel $cid hasn't been initialized yet. Make sure to call .watch()"
' or to instantiate the client using [Channel.fromState]');
}
}
@@ -1285,8 +1342,8 @@ class ChannelClientState {
final expiredAttachmentMessagesId = channelState.messages
.where((m) =>
!_updatedMessagesIds.contains(m.id) &&
m.attachments?.isNotEmpty == true &&
m.attachments?.any((e) {
m.attachments.isNotEmpty == true &&
m.attachments.any((e) {
final url = e.imageUrl ?? e.assetUrl;
if (url == null || !url.contains('')) {
return false;
@@ -1602,12 +1659,12 @@ class ChannelClientState {
bool _countMessageAsUnread(Message message) {
final userId = _channel.client.state.user?.id;
final userIsMuted = _channel.client.state.user?.mutes.firstWhereOrNull(
(m) => m.user?.id == message.user!.id,
(m) => m.user.id == message.user?.id,
) !=
null;
return message.silent != true &&
message.shadowed != true &&
message.user!.id != userId &&
message.user?.id != userId &&
!userIsMuted;
}
+112 -93
View File
@@ -20,186 +20,194 @@ class _BaseResponse {
@JsonSerializable(createToJson: false)
class SyncResponse extends _BaseResponse {
/// The list of events
List<Event>? events;
@JsonKey(defaultValue: [])
late List<Event> events;
/// Create a new instance from a json
static SyncResponse fromJson(Map<String, dynamic>? json) =>
_$SyncResponseFromJson(json!);
static SyncResponse fromJson(Map<String, dynamic> json) =>
_$SyncResponseFromJson(json);
}
/// Model response for [StreamChatClient.queryChannels] api call
@JsonSerializable(createToJson: false)
class QueryChannelsResponse extends _BaseResponse {
/// List of channels state returned by the query
List<ChannelState>? channels;
@JsonKey(defaultValue: [])
late List<ChannelState> channels;
/// Create a new instance from a json
static QueryChannelsResponse fromJson(Map<String, dynamic>? json) =>
_$QueryChannelsResponseFromJson(json!);
static QueryChannelsResponse fromJson(Map<String, dynamic> json) =>
_$QueryChannelsResponseFromJson(json);
}
/// Model response for [StreamChatClient.queryChannels] api call
@JsonSerializable(createToJson: false)
class TranslateMessageResponse extends _BaseResponse {
/// List of channels state returned by the query
TranslatedMessage? message;
/// Translated message
late TranslatedMessage message;
/// Create a new instance from a json
static TranslateMessageResponse fromJson(Map<String, dynamic>? json) =>
_$TranslateMessageResponseFromJson(json!);
static TranslateMessageResponse fromJson(Map<String, dynamic> json) =>
_$TranslateMessageResponseFromJson(json);
}
/// Model response for [StreamChatClient.queryChannels] api call
@JsonSerializable(createToJson: false)
class QueryMembersResponse extends _BaseResponse {
/// List of channels state returned by the query
List<Member>? members;
@JsonKey(defaultValue: [])
late List<Member> members;
/// Create a new instance from a json
static QueryMembersResponse fromJson(Map<String, dynamic>? json) =>
_$QueryMembersResponseFromJson(json!);
static QueryMembersResponse fromJson(Map<String, dynamic> json) =>
_$QueryMembersResponseFromJson(json);
}
/// Model response for [StreamChatClient.queryUsers] api call
@JsonSerializable(createToJson: false)
class QueryUsersResponse extends _BaseResponse {
/// List of users returned by the query
List<User>? users;
@JsonKey(defaultValue: [])
late List<User> users;
/// Create a new instance from a json
static QueryUsersResponse fromJson(Map<String, dynamic>? json) =>
_$QueryUsersResponseFromJson(json!);
static QueryUsersResponse fromJson(Map<String, dynamic> json) =>
_$QueryUsersResponseFromJson(json);
}
/// Model response for [channel.getReactions] api call
@JsonSerializable(createToJson: false)
class QueryReactionsResponse extends _BaseResponse {
/// List of reactions returned by the query
List<Reaction>? reactions;
@JsonKey(defaultValue: [])
late List<Reaction> reactions;
/// Create a new instance from a json
static QueryReactionsResponse fromJson(Map<String, dynamic>? json) =>
_$QueryReactionsResponseFromJson(json!);
static QueryReactionsResponse fromJson(Map<String, dynamic> json) =>
_$QueryReactionsResponseFromJson(json);
}
/// Model response for [Channel.getReplies] api call
@JsonSerializable(createToJson: false)
class QueryRepliesResponse extends _BaseResponse {
/// List of messages returned by the api call
List<Message>? messages;
@JsonKey(defaultValue: [])
late List<Message> messages;
/// Create a new instance from a json
static QueryRepliesResponse fromJson(Map<String, dynamic>? json) =>
_$QueryRepliesResponseFromJson(json!);
static QueryRepliesResponse fromJson(Map<String, dynamic> json) =>
_$QueryRepliesResponseFromJson(json);
}
/// Model response for [StreamChatClient.getDevices] api call
@JsonSerializable(createToJson: false)
class ListDevicesResponse extends _BaseResponse {
/// List of user devices
List<Device>? devices;
@JsonKey(defaultValue: [])
late List<Device> devices;
/// Create a new instance from a json
static ListDevicesResponse fromJson(Map<String, dynamic>? json) =>
_$ListDevicesResponseFromJson(json!);
static ListDevicesResponse fromJson(Map<String, dynamic> json) =>
_$ListDevicesResponseFromJson(json);
}
/// Model response for [Channel.sendFile] api call
@JsonSerializable(createToJson: false)
class SendFileResponse extends _BaseResponse {
/// The url of the uploaded file
String? file;
late String file;
/// Create a new instance from a json
static SendFileResponse fromJson(Map<String, dynamic>? json) =>
_$SendFileResponseFromJson(json!);
static SendFileResponse fromJson(Map<String, dynamic> json) =>
_$SendFileResponseFromJson(json);
}
/// Model response for [Channel.sendImage] api call
@JsonSerializable(createToJson: false)
class SendImageResponse extends _BaseResponse {
/// The url of the uploaded file
String? file;
late String file;
/// Create a new instance from a json
static SendImageResponse fromJson(Map<String, dynamic>? json) =>
_$SendImageResponseFromJson(json!);
static SendImageResponse fromJson(Map<String, dynamic> json) =>
_$SendImageResponseFromJson(json);
}
/// Model response for [Channel.sendReaction] api call
@JsonSerializable(createToJson: false)
class SendReactionResponse extends _BaseResponse {
/// Message returned by the api call
Message? message;
late Message message;
/// The reaction created by the api call
Reaction? reaction;
late Reaction reaction;
/// Create a new instance from a json
static SendReactionResponse fromJson(Map<String, dynamic>? json) =>
_$SendReactionResponseFromJson(json!);
static SendReactionResponse fromJson(Map<String, dynamic> json) =>
_$SendReactionResponseFromJson(json);
}
/// Model response for [StreamChatClient.connectGuestUser] api call
@JsonSerializable(createToJson: false)
class ConnectGuestUserResponse extends _BaseResponse {
/// Guest user access token
String? accessToken;
late String accessToken;
/// Guest user
User? user;
late User user;
/// Create a new instance from a json
static ConnectGuestUserResponse fromJson(Map<String, dynamic>? json) =>
_$ConnectGuestUserResponseFromJson(json!);
static ConnectGuestUserResponse fromJson(Map<String, dynamic> json) =>
_$ConnectGuestUserResponseFromJson(json);
}
/// Model response for [StreamChatClient.updateUser] api call
@JsonSerializable(createToJson: false)
class UpdateUsersResponse extends _BaseResponse {
/// Updated users
Map<String, User>? users;
@JsonKey(defaultValue: {})
late Map<String, User> users;
/// Create a new instance from a json
static UpdateUsersResponse fromJson(Map<String, dynamic>? json) =>
_$UpdateUsersResponseFromJson(json!);
static UpdateUsersResponse fromJson(Map<String, dynamic> json) =>
_$UpdateUsersResponseFromJson(json);
}
/// Model response for [StreamChatClient.updateMessage] api call
@JsonSerializable(createToJson: false)
class UpdateMessageResponse extends _BaseResponse {
/// Message returned by the api call
Message? message;
late Message message;
/// Create a new instance from a json
static UpdateMessageResponse fromJson(Map<String, dynamic>? json) =>
_$UpdateMessageResponseFromJson(json!);
static UpdateMessageResponse fromJson(Map<String, dynamic> json) =>
_$UpdateMessageResponseFromJson(json);
}
/// Model response for [Channel.sendMessage] api call
@JsonSerializable(createToJson: false)
class SendMessageResponse extends _BaseResponse {
/// Message returned by the api call
Message? message;
late Message message;
/// Create a new instance from a json
static SendMessageResponse fromJson(Map<String, dynamic>? json) =>
_$SendMessageResponseFromJson(json!);
static SendMessageResponse fromJson(Map<String, dynamic> json) =>
_$SendMessageResponseFromJson(json);
}
/// Model response for [StreamChatClient.getMessage] api call
@JsonSerializable(createToJson: false)
class GetMessageResponse extends _BaseResponse {
/// Message returned by the api call
Message? message;
late Message message;
/// Channel of the message
ChannelModel? channel;
/// Create a new instance from a json
static GetMessageResponse fromJson(Map<String, dynamic>? json) {
final res = _$GetMessageResponseFromJson(json!);
final jsonChannel = res.message?.extraData?.remove('channel');
static GetMessageResponse fromJson(Map<String, dynamic> json) {
final res = _$GetMessageResponseFromJson(json);
final jsonChannel = res.message.extraData.remove('channel');
if (jsonChannel != null) {
res.channel = ChannelModel.fromJson(jsonChannel);
}
@@ -211,29 +219,31 @@ class GetMessageResponse extends _BaseResponse {
@JsonSerializable(createToJson: false)
class SearchMessagesResponse extends _BaseResponse {
/// List of messages returned by the api call
List<GetMessageResponse>? results;
@JsonKey(defaultValue: [])
late List<GetMessageResponse> results;
/// Create a new instance from a json
static SearchMessagesResponse fromJson(Map<String, dynamic>? json) =>
_$SearchMessagesResponseFromJson(json!);
static SearchMessagesResponse fromJson(Map<String, dynamic> json) =>
_$SearchMessagesResponseFromJson(json);
}
/// Model response for [Channel.getMessagesById] api call
@JsonSerializable(createToJson: false)
class GetMessagesByIdResponse extends _BaseResponse {
/// Message returned by the api call
List<Message>? messages;
@JsonKey(defaultValue: [])
late List<Message> messages;
/// Create a new instance from a json
static GetMessagesByIdResponse fromJson(Map<String, dynamic>? json) =>
_$GetMessagesByIdResponseFromJson(json!);
static GetMessagesByIdResponse fromJson(Map<String, dynamic> json) =>
_$GetMessagesByIdResponseFromJson(json);
}
/// Model response for [Channel.update] api call
@JsonSerializable(createToJson: false)
class UpdateChannelResponse extends _BaseResponse {
/// Updated channel
ChannelModel? channel;
late ChannelModel channel;
/// Channel members
List<Member>? members;
@@ -242,56 +252,58 @@ class UpdateChannelResponse extends _BaseResponse {
Message? message;
/// Create a new instance from a json
static UpdateChannelResponse fromJson(Map<String, dynamic>? json) =>
_$UpdateChannelResponseFromJson(json!);
static UpdateChannelResponse fromJson(Map<String, dynamic> json) =>
_$UpdateChannelResponseFromJson(json);
}
/// Model response for [Channel.updatePartial] api call
@JsonSerializable(createToJson: false)
class PartialUpdateChannelResponse extends _BaseResponse {
/// Updated channel
ChannelModel? channel;
late ChannelModel channel;
/// Channel members
List<Member>? members;
/// Create a new instance from a json
static PartialUpdateChannelResponse fromJson(Map<String, dynamic>? json) =>
_$PartialUpdateChannelResponseFromJson(json!);
static PartialUpdateChannelResponse fromJson(Map<String, dynamic> json) =>
_$PartialUpdateChannelResponseFromJson(json);
}
/// Model response for [Channel.inviteMembers] api call
@JsonSerializable(createToJson: false)
class InviteMembersResponse extends _BaseResponse {
/// Updated channel
ChannelModel? channel;
late ChannelModel channel;
/// Channel members
List<Member>? members;
@JsonKey(defaultValue: [])
late List<Member> members;
/// Message returned by the api call
Message? message;
/// Create a new instance from a json
static InviteMembersResponse fromJson(Map<String, dynamic>? json) =>
_$InviteMembersResponseFromJson(json!);
static InviteMembersResponse fromJson(Map<String, dynamic> json) =>
_$InviteMembersResponseFromJson(json);
}
/// Model response for [Channel.removeMembers] api call
@JsonSerializable(createToJson: false)
class RemoveMembersResponse extends _BaseResponse {
/// Updated channel
ChannelModel? channel;
late ChannelModel channel;
/// Channel members
List<Member>? members;
@JsonKey(defaultValue: [])
late List<Member> members;
/// Message returned by the api call
Message? message;
/// Create a new instance from a json
static RemoveMembersResponse fromJson(Map<String, dynamic>? json) =>
_$RemoveMembersResponseFromJson(json!);
static RemoveMembersResponse fromJson(Map<String, dynamic> json) =>
_$RemoveMembersResponseFromJson(json);
}
/// Model response for [Channel.sendAction] api call
@@ -301,86 +313,93 @@ class SendActionResponse extends _BaseResponse {
Message? message;
/// Create a new instance from a json
static SendActionResponse fromJson(Map<String, dynamic>? json) =>
_$SendActionResponseFromJson(json!);
static SendActionResponse fromJson(Map<String, dynamic> json) =>
_$SendActionResponseFromJson(json);
}
/// Model response for [Channel.addMembers] api call
@JsonSerializable(createToJson: false)
class AddMembersResponse extends _BaseResponse {
/// Updated channel
ChannelModel? channel;
late ChannelModel channel;
/// Channel members
List<Member>? members;
@JsonKey(defaultValue: [])
late List<Member> members;
/// Message returned by the api call
Message? message;
/// Create a new instance from a json
static AddMembersResponse fromJson(Map<String, dynamic>? json) =>
_$AddMembersResponseFromJson(json!);
static AddMembersResponse fromJson(Map<String, dynamic> json) =>
_$AddMembersResponseFromJson(json);
}
/// Model response for [Channel.acceptInvite] api call
@JsonSerializable(createToJson: false)
class AcceptInviteResponse extends _BaseResponse {
/// Updated channel
ChannelModel? channel;
late ChannelModel channel;
/// Channel members
List<Member>? members;
@JsonKey(defaultValue: [])
late List<Member> members;
/// Message returned by the api call
Message? message;
/// Create a new instance from a json
static AcceptInviteResponse fromJson(Map<String, dynamic>? json) =>
_$AcceptInviteResponseFromJson(json!);
static AcceptInviteResponse fromJson(Map<String, dynamic> json) =>
_$AcceptInviteResponseFromJson(json);
}
/// Model response for [Channel.rejectInvite] api call
@JsonSerializable(createToJson: false)
class RejectInviteResponse extends _BaseResponse {
/// Updated channel
ChannelModel? channel;
late ChannelModel channel;
/// Channel members
List<Member>? members;
@JsonKey(defaultValue: [])
late List<Member> members;
/// Message returned by the api call
Message? message;
/// Create a new instance from a json
static RejectInviteResponse fromJson(Map<String, dynamic>? json) =>
_$RejectInviteResponseFromJson(json!);
static RejectInviteResponse fromJson(Map<String, dynamic> json) =>
_$RejectInviteResponseFromJson(json);
}
/// Model response for empty responses
@JsonSerializable(createToJson: false)
class EmptyResponse extends _BaseResponse {
/// Create a new instance from a json
static EmptyResponse fromJson(Map<String, dynamic>? json) =>
_$EmptyResponseFromJson(json!);
static EmptyResponse fromJson(Map<String, dynamic> json) =>
_$EmptyResponseFromJson(json);
}
/// Model response for [Channel.query] api call
@JsonSerializable(createToJson: false)
class ChannelStateResponse extends _BaseResponse {
/// Updated channel
ChannelModel? channel;
late ChannelModel channel;
/// List of messages returned by the api call
List<Message>? messages;
@JsonKey(defaultValue: [])
late List<Message> messages;
/// Channel members
List<Member>? members;
@JsonKey(defaultValue: [])
late List<Member> members;
/// Number of users watching the channel
int? watcherCount;
@JsonKey(defaultValue: 0)
late int watcherCount;
/// List of read states
List<Read>? read;
@JsonKey(defaultValue: [])
late List<Read> read;
/// Create a new instance from a json
static ChannelStateResponse fromJson(Map<String, dynamic> json) =>
@@ -10,8 +10,9 @@ SyncResponse _$SyncResponseFromJson(Map<String, dynamic> json) {
return SyncResponse()
..duration = json['duration'] as String?
..events = (json['events'] as List<dynamic>?)
?.map((e) => Event.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => Event.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
QueryChannelsResponse _$QueryChannelsResponseFromJson(
@@ -19,33 +20,35 @@ QueryChannelsResponse _$QueryChannelsResponseFromJson(
return QueryChannelsResponse()
..duration = json['duration'] as String?
..channels = (json['channels'] as List<dynamic>?)
?.map((e) => ChannelState.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => ChannelState.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
TranslateMessageResponse _$TranslateMessageResponseFromJson(
Map<String, dynamic> json) {
return TranslateMessageResponse()
..duration = json['duration'] as String?
..message = json['message'] == null
? null
: TranslatedMessage.fromJson(json['message'] as Map<String, dynamic>);
..message =
TranslatedMessage.fromJson(json['message'] as Map<String, dynamic>);
}
QueryMembersResponse _$QueryMembersResponseFromJson(Map<String, dynamic> json) {
return QueryMembersResponse()
..duration = json['duration'] as String?
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
QueryUsersResponse _$QueryUsersResponseFromJson(Map<String, dynamic> json) {
return QueryUsersResponse()
..duration = json['duration'] as String?
..users = (json['users'] as List<dynamic>?)
?.map((e) => User.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => User.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
QueryReactionsResponse _$QueryReactionsResponseFromJson(
@@ -53,90 +56,82 @@ QueryReactionsResponse _$QueryReactionsResponseFromJson(
return QueryReactionsResponse()
..duration = json['duration'] as String?
..reactions = (json['reactions'] as List<dynamic>?)
?.map((e) => Reaction.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => Reaction.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
QueryRepliesResponse _$QueryRepliesResponseFromJson(Map<String, dynamic> json) {
return QueryRepliesResponse()
..duration = json['duration'] as String?
..messages = (json['messages'] as List<dynamic>?)
?.map((e) => Message.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => Message.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
ListDevicesResponse _$ListDevicesResponseFromJson(Map<String, dynamic> json) {
return ListDevicesResponse()
..duration = json['duration'] as String?
..devices = (json['devices'] as List<dynamic>?)
?.map((e) => Device.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => Device.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
SendFileResponse _$SendFileResponseFromJson(Map<String, dynamic> json) {
return SendFileResponse()
..duration = json['duration'] as String?
..file = json['file'] as String?;
..file = json['file'] as String;
}
SendImageResponse _$SendImageResponseFromJson(Map<String, dynamic> json) {
return SendImageResponse()
..duration = json['duration'] as String?
..file = json['file'] as String?;
..file = json['file'] as String;
}
SendReactionResponse _$SendReactionResponseFromJson(Map<String, dynamic> json) {
return SendReactionResponse()
..duration = json['duration'] as String?
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>)
..reaction = json['reaction'] == null
? null
: Reaction.fromJson(json['reaction'] as Map<String, dynamic>);
..message = Message.fromJson(json['message'] as Map<String, dynamic>)
..reaction = Reaction.fromJson(json['reaction'] as Map<String, dynamic>);
}
ConnectGuestUserResponse _$ConnectGuestUserResponseFromJson(
Map<String, dynamic> json) {
return ConnectGuestUserResponse()
..duration = json['duration'] as String?
..accessToken = json['access_token'] as String?
..user = json['user'] == null
? null
: User.fromJson(json['user'] as Map<String, dynamic>);
..accessToken = json['access_token'] as String
..user = User.fromJson(json['user'] as Map<String, dynamic>);
}
UpdateUsersResponse _$UpdateUsersResponseFromJson(Map<String, dynamic> json) {
return UpdateUsersResponse()
..duration = json['duration'] as String?
..users = (json['users'] as Map<String, dynamic>?)?.map(
(k, e) => MapEntry(k, User.fromJson(e as Map<String, dynamic>)),
);
(k, e) => MapEntry(k, User.fromJson(e as Map<String, dynamic>)),
) ??
{};
}
UpdateMessageResponse _$UpdateMessageResponseFromJson(
Map<String, dynamic> json) {
return UpdateMessageResponse()
..duration = json['duration'] as String?
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>);
..message = Message.fromJson(json['message'] as Map<String, dynamic>);
}
SendMessageResponse _$SendMessageResponseFromJson(Map<String, dynamic> json) {
return SendMessageResponse()
..duration = json['duration'] as String?
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>);
..message = Message.fromJson(json['message'] as Map<String, dynamic>);
}
GetMessageResponse _$GetMessageResponseFromJson(Map<String, dynamic> json) {
return GetMessageResponse()
..duration = json['duration'] as String?
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>)
..message = Message.fromJson(json['message'] as Map<String, dynamic>)
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>);
@@ -147,8 +142,9 @@ SearchMessagesResponse _$SearchMessagesResponseFromJson(
return SearchMessagesResponse()
..duration = json['duration'] as String?
..results = (json['results'] as List<dynamic>?)
?.map((e) => GetMessageResponse.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => GetMessageResponse.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
GetMessagesByIdResponse _$GetMessagesByIdResponseFromJson(
@@ -156,17 +152,16 @@ GetMessagesByIdResponse _$GetMessagesByIdResponseFromJson(
return GetMessagesByIdResponse()
..duration = json['duration'] as String?
..messages = (json['messages'] as List<dynamic>?)
?.map((e) => Message.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => Message.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}
UpdateChannelResponse _$UpdateChannelResponseFromJson(
Map<String, dynamic> json) {
return UpdateChannelResponse()
..duration = json['duration'] as String?
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..channel = ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList()
@@ -179,9 +174,7 @@ PartialUpdateChannelResponse _$PartialUpdateChannelResponseFromJson(
Map<String, dynamic> json) {
return PartialUpdateChannelResponse()
..duration = json['duration'] as String?
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..channel = ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList();
@@ -191,12 +184,11 @@ InviteMembersResponse _$InviteMembersResponseFromJson(
Map<String, dynamic> json) {
return InviteMembersResponse()
..duration = json['duration'] as String?
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..channel = ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList()
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList() ??
[]
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>);
@@ -206,12 +198,11 @@ RemoveMembersResponse _$RemoveMembersResponseFromJson(
Map<String, dynamic> json) {
return RemoveMembersResponse()
..duration = json['duration'] as String?
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..channel = ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList()
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList() ??
[]
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>);
@@ -228,12 +219,11 @@ SendActionResponse _$SendActionResponseFromJson(Map<String, dynamic> json) {
AddMembersResponse _$AddMembersResponseFromJson(Map<String, dynamic> json) {
return AddMembersResponse()
..duration = json['duration'] as String?
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..channel = ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList()
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList() ??
[]
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>);
@@ -242,12 +232,11 @@ AddMembersResponse _$AddMembersResponseFromJson(Map<String, dynamic> json) {
AcceptInviteResponse _$AcceptInviteResponseFromJson(Map<String, dynamic> json) {
return AcceptInviteResponse()
..duration = json['duration'] as String?
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..channel = ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList()
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList() ??
[]
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>);
@@ -256,12 +245,11 @@ AcceptInviteResponse _$AcceptInviteResponseFromJson(Map<String, dynamic> json) {
RejectInviteResponse _$RejectInviteResponseFromJson(Map<String, dynamic> json) {
return RejectInviteResponse()
..duration = json['duration'] as String?
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..channel = ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList()
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList() ??
[]
..message = json['message'] == null
? null
: Message.fromJson(json['message'] as Map<String, dynamic>);
@@ -274,17 +262,18 @@ EmptyResponse _$EmptyResponseFromJson(Map<String, dynamic> json) {
ChannelStateResponse _$ChannelStateResponseFromJson(Map<String, dynamic> json) {
return ChannelStateResponse()
..duration = json['duration'] as String?
..channel = json['channel'] == null
? null
: ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..channel = ChannelModel.fromJson(json['channel'] as Map<String, dynamic>)
..messages = (json['messages'] as List<dynamic>?)
?.map((e) => Message.fromJson(e as Map<String, dynamic>))
.toList()
?.map((e) => Message.fromJson(e as Map<String, dynamic>))
.toList() ??
[]
..members = (json['members'] as List<dynamic>?)
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList()
..watcherCount = json['watcher_count'] as int?
?.map((e) => Member.fromJson(e as Map<String, dynamic>))
.toList() ??
[]
..watcherCount = json['watcher_count'] as int? ?? 0
..read = (json['read'] as List<dynamic>?)
?.map((e) => Read.fromJson(e as Map<String, dynamic>))
.toList();
?.map((e) => Read.fromJson(e as Map<String, dynamic>))
.toList() ??
[];
}