[LLC -> AttachmentFileUploader] Add remaining delete methods

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-02-19 14:10:48 +05:30
parent 3d1bfc7039
commit a291c8dbcf
3 changed files with 98 additions and 10 deletions
@@ -31,6 +31,28 @@ abstract class AttachmentFileUploader {
ProgressCallback onSendProgress,
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]
@@ -89,4 +111,34 @@ class StreamAttachmentFileUploader implements AttachmentFileUploader {
);
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);
}
}