Update angel_user_agent.dart
This commit is contained in:
parent
211bab2136
commit
1d42e8b0eb
1 changed files with 8 additions and 8 deletions
|
@ -1,20 +1,20 @@
|
|||
import 'package:angel_framework/angel_framework.dart';
|
||||
import 'package:user_agent/user_agent.dart' as ua;
|
||||
import 'package:ua_parser/ua_parser.dart' as ua;
|
||||
|
||||
/// Injects a [ua.UserAgent] into requests.
|
||||
/// Injects a [ua.Client] and [ua.UserAgent] into requests.
|
||||
///
|
||||
/// If [strict] is `true`, then an invalid
|
||||
/// `User-Agent` header will throw a `400 Bad Request`.
|
||||
RequestMiddleware parseUserAgent({bool strict: true}) {
|
||||
return (req, res) async {
|
||||
try {
|
||||
req.inject(ua.UserAgent, ua.parse(req.headers.value('User-Agent')));
|
||||
final client = ua.parse(req.headers.value('User-Agent'));
|
||||
req
|
||||
..inject(ua.Client, client)
|
||||
..inject(ua.UserAgent, client.userAgent);
|
||||
} catch (e) {
|
||||
if (e is ua.UserAgentException && strict) {
|
||||
throw new AngelHttpException.BadRequest(message: 'Invalid user agent.');
|
||||
} else {
|
||||
rethrow;
|
||||
}
|
||||
throw strict ?
|
||||
new AngelHttpException.BadRequest(message: 'Invalid user agent.') : e;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in a new issue