From b2d22069b23992dc370d0dea21dd1c0793b2e01f Mon Sep 17 00:00:00 2001 From: toki Date: Tue, 21 Mar 2023 22:54:01 +0900 Subject: [PATCH] Slack sender code refactoring --- lib/utils/slack/slack_sender.dart | 37 +++++++++++-------------------- 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/lib/utils/slack/slack_sender.dart b/lib/utils/slack/slack_sender.dart index b8c08cc..86b1f52 100644 --- a/lib/utils/slack/slack_sender.dart +++ b/lib/utils/slack/slack_sender.dart @@ -16,9 +16,6 @@ class SlackSender { //API - https://api.slack.com/methods/files.upload final urlFileUplaod = "https://slack.com/api/files.upload"; - Function(String)? _completeListener; - Function(Exception)? _errorListener; - String getValidatedUser(String? targetUser) { targetUser ??= "@channel"; if (targetUser.indexOf("@") != 0) targetUser = "@$targetUser"; @@ -53,20 +50,6 @@ class SlackSender { return buffer.toString(); } - void onComplete(String result) { - print(result); - if (_completeListener != null) _completeListener!(result); - } - - void onError(Exception exception) { - if (_errorListener != null) _errorListener!(exception); - } - - void initializeListener() { - _completeListener = null; - _errorListener = null; - } - //단일 Attachment로 보낼시 Future send(String channel, SlackAttachment attachment, {String? targetUser, @@ -81,14 +64,18 @@ class SlackSender { Future sends(String channel, DataSlack message, {String? targetUser, Function(String)? completeListener, - Function(Exception)? errorListener}) async { + Function(Object)? errorListener}) async { var c = Completer(); String url = getURL(channel, message, targetUser); var response = await http.get(Uri.parse(url)); - print(response.body); - if (_completeListener != null) _completeListener!(response.body); + if (response.statusCode < 300 && response.statusCode >= 200) { + print(response.body); + if (completeListener != null) completeListener!(response.body); + } else { + if (errorListener != null) errorListener!(response); + } c.complete(); return c.future; @@ -112,16 +99,18 @@ class SlackSender { Future sendFile(String channel, SlackFile file, {String? targetUser, Function(String)? completeListener, - Function(Exception)? errorListener}) async { + Function(Object)? errorListener}) async { var c = Completer(); - _completeListener = completeListener; - _errorListener = errorListener; var form = getPostForm(urlFileUplaod, channel, targetUser); form = await file.setFileData(form); var response = await form.send(); var result = await response.stream.bytesToString(); - if (_completeListener != null) _completeListener!(result); + if (response.statusCode < 300 && response.statusCode >= 200) { + if (completeListener != null) completeListener!(result); + } else { + if (errorListener != null) errorListener!(result); + } c.complete(); return c.future;