handle method
Method called when report has been accepted by user
Implementation
@override
Future<bool> handle(Report report, BuildContext? context) async {
try {
var message = '';
if (customMessageBuilder != null) {
message = await customMessageBuilder!(report);
} else {
message = _buildMessage(report);
}
final data = <String, dynamic>{
'text': message,
'channel': channel,
'username': username,
'icon_emoji': iconEmoji,
};
_printLog('Sending request to Slack server...');
final screenshot = report.screenshot;
if (screenshot != null) {
data.addAll(await _tryUploadScreenshot(screenshot: screenshot));
}
final response = await _dio.post<dynamic>(
webhookUrl,
data: json.encode(data),
options: Options(contentType: Headers.formUrlEncodedContentType),
);
_logServerResponse(
'message post',
response.statusMessage,
response.statusCode,
);
return response.ok;
} catch (exception) {
_printLog('Failed to send Slack message: $exception');
return false;
}
}