Merge pull request #270 from GetStream/add-attachment-delete-methods

[LLC -> AttachmentFileUploader] Add remaining delete methods
This commit is contained in:
Salvatore Giordano
2021-02-19 10:23:27 +01:00
committed by GitHub
3 changed files with 98 additions and 10 deletions
+10 -8
View File
@@ -480,17 +480,19 @@ class Channel {
} }
/// Delete a file from this channel /// Delete a file from this channel
Future<EmptyResponse> deleteFile(String url) async { Future<EmptyResponse> deleteFile(
final response = await _client String url, {
.delete('$_channelURL/file', queryParameters: {'url': url}); CancelToken cancelToken,
return _client.decode(response.data, EmptyResponse.fromJson); }) {
return _client.deleteFile(url, id, type, cancelToken: cancelToken);
} }
/// Delete an image from this channel /// Delete an image from this channel
Future<EmptyResponse> deleteImage(String url) async { Future<EmptyResponse> deleteImage(
final response = await _client String url, {
.delete('$_channelURL/image', queryParameters: {'url': url}); CancelToken cancelToken,
return _client.decode(response.data, EmptyResponse.fromJson); }) {
return _client.deleteImage(url, id, type, cancelToken: cancelToken);
} }
/// Send an event on this channel /// Send an event on this channel
@@ -31,6 +31,28 @@ abstract class AttachmentFileUploader {
ProgressCallback onSendProgress, ProgressCallback onSendProgress,
CancelToken cancelToken, CancelToken cancelToken,
}); });
/// Deletes a image using its [url] from the given channel.
/// Returns [EmptyResponse] once deleted successfully.
///
/// Optionally, cancel the request using [cancelToken]
Future<EmptyResponse> deleteImage(
String url,
String channelId,
String channelType, {
CancelToken cancelToken,
});
/// Deletes a file using its [url] from the given channel.
/// Returns [EmptyResponse] once deleted successfully.
///
/// Optionally, cancel the request using [cancelToken]
Future<EmptyResponse> deleteFile(
String url,
String channelId,
String channelType, {
CancelToken cancelToken,
});
} }
/// Stream's default implementation of [AttachmentFileUploader] /// Stream's default implementation of [AttachmentFileUploader]
@@ -89,4 +111,34 @@ class StreamAttachmentFileUploader implements AttachmentFileUploader {
); );
return _client.decode(response.data, SendFileResponse.fromJson); return _client.decode(response.data, SendFileResponse.fromJson);
} }
@override
Future<EmptyResponse> deleteImage(
String url,
String channelId,
String channelType, {
CancelToken cancelToken,
}) async {
final response = await _client.delete(
'/channels/$channelType/$channelId/image',
queryParameters: {'url': url},
cancelToken: cancelToken,
);
return _client.decode(response.data, EmptyResponse.fromJson);
}
@override
Future<EmptyResponse> deleteFile(
String url,
String channelId,
String channelType, {
CancelToken cancelToken,
}) async {
final response = await _client.delete(
'/channels/$channelType/$channelId/file',
queryParameters: {'url': url},
cancelToken: cancelToken,
);
return _client.decode(response.data, EmptyResponse.fromJson);
}
} }
+36 -2
View File
@@ -822,10 +822,14 @@ class StreamChatClient {
Future<Response<String>> delete( Future<Response<String>> delete(
String path, { String path, {
Map<String, dynamic> queryParameters, Map<String, dynamic> queryParameters,
CancelToken cancelToken,
}) async { }) async {
try { try {
final response = await httpClient.delete<String>(path, final response = await httpClient.delete<String>(
queryParameters: queryParameters); path,
queryParameters: queryParameters,
cancelToken: cancelToken,
);
return response; return response;
} on DioError catch (error) { } on DioError catch (error) {
throw _parseError(error); throw _parseError(error);
@@ -1076,6 +1080,36 @@ class StreamChatClient {
); );
} }
/// Delete a file from this channel
Future<EmptyResponse> deleteFile(
String url,
String channelId,
String channelType, {
CancelToken cancelToken,
}) {
return attachmentFileUploader.deleteFile(
url,
channelId,
channelType,
cancelToken: cancelToken,
);
}
/// Delete an image from this channel
Future<EmptyResponse> deleteImage(
String url,
String channelId,
String channelType, {
CancelToken cancelToken,
}) {
return attachmentFileUploader.deleteImage(
url,
channelId,
channelType,
cancelToken: cancelToken,
);
}
/// Add a device for Push Notifications. /// Add a device for Push Notifications.
Future<EmptyResponse> addDevice(String id, PushProvider pushProvider) async { Future<EmptyResponse> addDevice(String id, PushProvider pushProvider) async {
final response = await post('/devices', data: { final response = await post('/devices', data: {