Skip to content

Commit

Permalink
Merge pull request #290 from yelmuratoff/patch-1
Browse files Browse the repository at this point in the history
Update talker_http_logger.dart
  • Loading branch information
Frezyx authored Dec 23, 2024
2 parents b25caa4 + 448793b commit b2ca2a4
Showing 1 changed file with 44 additions and 6 deletions.
50 changes: 44 additions & 6 deletions packages/talker_http_logger/lib/talker_http_logger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,13 @@ class TalkerHttpLogger extends InterceptorContract {
required BaseResponse response,
}) async {
final message = '${response.request?.url}';
_talker.logCustom(HttpResponseLog(message, response: response));

if (response.statusCode >= 400 && response.statusCode < 600) {
_talker.logCustom(HttpErrorLog(message, response: response));
} else {
_talker.logCustom(HttpResponseLog(message, response: response));
}

return response;
}
}
Expand All @@ -48,8 +54,7 @@ class HttpRequestLog extends TalkerLog {
String get key => TalkerLogType.httpRequest.key;

@override
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
String generateTextMessage({TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
var msg = '[$title] [${request.method}] $message';

final headers = request.headers;
Expand Down Expand Up @@ -78,11 +83,44 @@ class HttpResponseLog extends TalkerLog {
AnsiPen get pen => (AnsiPen()..xterm(46));

@override
String get title => TalkerLogType.httpResponse.key;
String get key => TalkerLogType.httpResponse.key;

@override
String generateTextMessage({TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
var msg = '[$title] [${response.request?.method}] $message';

final headers = response.request?.headers;

msg += '\nStatus: ${response.statusCode}';

try {
if (headers?.isNotEmpty ?? false) {
final prettyHeaders = encoder.convert(headers);
msg += '\nHeaders: $prettyHeaders';
}
} catch (_) {
// TODO: add handling can`t convert
}
return msg;
}
}

class HttpErrorLog extends TalkerLog {
HttpErrorLog(
String title, {
required this.response,
}) : super(title);

final BaseResponse response;

@override
AnsiPen get pen => AnsiPen()..red();

@override
String get key => TalkerLogType.httpError.key;

@override
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
String generateTextMessage({TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
var msg = '[$title] [${response.request?.method}] $message';

final headers = response.request?.headers;
Expand Down

0 comments on commit b2ca2a4

Please sign in to comment.