From ac21bc27ff9592edd76cd8d88f70aec468f624d2 Mon Sep 17 00:00:00 2001 From: Deven Joshi Date: Thu, 18 Feb 2021 18:14:12 +0530 Subject: [PATCH] feat: Added updatePartial endpoint --- packages/stream_chat/lib/src/api/channel.dart | 7 +++++++ packages/stream_chat/lib/src/api/responses.dart | 14 ++++++++++++++ .../stream_chat/lib/src/api/responses.g.dart | 17 +++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/packages/stream_chat/lib/src/api/channel.dart b/packages/stream_chat/lib/src/api/channel.dart index bdf74dd6..d64779e4 100644 --- a/packages/stream_chat/lib/src/api/channel.dart +++ b/packages/stream_chat/lib/src/api/channel.dart @@ -394,6 +394,13 @@ class Channel { return _client.decode(response.data, UpdateChannelResponse.fromJson); } + /// Edit the channel custom data + Future updatePartial( + Map channelData) async { + final response = await _client.patch(_channelURL, data: channelData); + return _client.decode(response.data, PartialUpdateChannelResponse.fromJson); + } + /// Delete this channel. Messages are permanently removed. Future delete() async { final response = await _client.delete(_channelURL); diff --git a/packages/stream_chat/lib/src/api/responses.dart b/packages/stream_chat/lib/src/api/responses.dart index 3e5b7a7f..a1e928d6 100644 --- a/packages/stream_chat/lib/src/api/responses.dart +++ b/packages/stream_chat/lib/src/api/responses.dart @@ -247,6 +247,20 @@ class UpdateChannelResponse extends _BaseResponse { _$UpdateChannelResponseFromJson(json); } +/// Model response for [Channel.updatePartial] api call +@JsonSerializable(createToJson: false) +class PartialUpdateChannelResponse extends _BaseResponse { + /// Updated channel + ChannelModel channel; + + /// Channel members + List members; + + /// Create a new instance from a json + static PartialUpdateChannelResponse fromJson(Map json) => + _$PartialUpdateChannelResponseFromJson(json); +} + /// Model response for [Channel.inviteMembers] api call @JsonSerializable(createToJson: false) class InviteMembersResponse extends _BaseResponse { diff --git a/packages/stream_chat/lib/src/api/responses.g.dart b/packages/stream_chat/lib/src/api/responses.g.dart index fc51dd52..1f290d6e 100644 --- a/packages/stream_chat/lib/src/api/responses.g.dart +++ b/packages/stream_chat/lib/src/api/responses.g.dart @@ -225,6 +225,23 @@ UpdateChannelResponse _$UpdateChannelResponseFromJson(Map json) { )); } +PartialUpdateChannelResponse _$PartialUpdateChannelResponseFromJson(Map json) { + return PartialUpdateChannelResponse() + ..duration = json['duration'] as String + ..channel = json['channel'] == null + ? null + : ChannelModel.fromJson((json['channel'] as Map)?.map( + (k, e) => MapEntry(k as String, e), + )) + ..members = (json['members'] as List) + ?.map((e) => e == null + ? null + : Member.fromJson((e as Map)?.map( + (k, e) => MapEntry(k as String, e), + ))) + ?.toList(); +} + InviteMembersResponse _$InviteMembersResponseFromJson(Map json) { return InviteMembersResponse() ..duration = json['duration'] as String