Skip to content

Commit c91f639

Browse files
committed
update dependencies
1 parent 7874a9b commit c91f639

File tree

15 files changed

+144
-75
lines changed

15 files changed

+144
-75
lines changed

.vscode/tasks.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"type": "dart",
6+
"command": "dart",
7+
"cwd": "",
8+
"args": [
9+
"run",
10+
"build_runner",
11+
"watch"
12+
],
13+
"problemMatcher": [],
14+
"label": "dart: dart run build_runner watch",
15+
"detail": "",
16+
"group": {
17+
"kind": "build",
18+
"isDefault": true
19+
}
20+
}
21+
]
22+
}

analysis_options.yaml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
include: package:lint/analysis_options_package.yaml
2-
3-
# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
4-
5-
# Uncomment to specify additional rules.
6-
# linter:
7-
# rules:
8-
# - camel_case_types
1+
include: package:dart_test_tools/analysis_options_package.yaml
92

103
analyzer:
114
exclude:
12-
- '**/*.chopper.dart'
13-
- '**/*.freezed.dart'
5+
- "**/*.chopper.dart"
6+
- "**/*.freezed.dart"
7+
8+
linter:
9+
rules:
10+
public_member_api_docs: false

example/aha_client_example.dart

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@ class _AhaClientHttpOverrides extends HttpOverrides {
1313
_AhaClientHttpOverrides(this._host, this._port);
1414

1515
@override
16-
HttpClient createHttpClient(SecurityContext? context) {
17-
return super.createHttpClient(context)
18-
..badCertificateCallback =
19-
(X509Certificate cert, String host, int port) =>
20-
host == _host && port == _port;
21-
}
16+
HttpClient createHttpClient(SecurityContext? context) =>
17+
super.createHttpClient(context)
18+
..badCertificateCallback =
19+
(cert, host, port) => host == _host && port == _port;
2220
}
2321

22+
// ignore: must_be_immutable
2423
class ExampleLoginManager extends LoginManager {
2524
@override
2625
FutureOr<UserCredentials?> obtainCredentials(LoginInfo loginInfo) async {
@@ -29,8 +28,9 @@ class ExampleLoginManager extends LoginManager {
2928
'Login blocked until: ${DateTime.now().add(loginInfo.blockTime!)}',
3029
);
3130
}
32-
stdout.writeln('Known usernames: ${loginInfo.knownUsers}');
33-
stdout.write('Username: ');
31+
stdout
32+
..writeln('Known usernames: ${loginInfo.knownUsers}')
33+
..write('Username: ');
3434
await stdout.flush();
3535
final username = stdin.readLineSync();
3636
stdout.write('Password: ');
@@ -61,8 +61,11 @@ Future<void> main() async {
6161
final client = AhaClient(loginManager: ExampleLoginManager());
6262

6363
final response = await client.aha.getDeviceListInfos();
64+
// ignore: avoid_print
6465
print(response.statusCode);
66+
// ignore: avoid_print
6567
print('');
68+
// ignore: avoid_print
6669
print(response.body);
6770

6871
await client.dispose();

lib/src/api/aha/models/device_list_infos.dart

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import 'package:aha_client/src/api/util/xml_converter.dart';
21
import 'package:freezed_annotation/freezed_annotation.dart';
32
import 'package:xml/xml.dart';
43

4+
import '../../util/xml_converter.dart';
5+
56
part 'device_list_infos.freezed.dart';
67

78
@freezed
@@ -16,14 +17,15 @@ class DeviceList with _$DeviceList {
1617
}) = _DeviceList;
1718

1819
factory DeviceList.fromXml(XmlElement element) {
19-
assert(element.name.toString() == 'devicelist');
20+
assert(
21+
element.name.toString() == 'devicelist',
22+
'element must be a <devicelist> element.',
23+
);
2024

2125
return DeviceList(
2226
version: element.getAttribute('version') ?? '',
2327
fwversion: element.getAttribute('fwversion') ?? '',
24-
devices: List.unmodifiable(
25-
element.childElements.map((element) => Device.fromXml(element)),
26-
),
28+
devices: element.childElements.map<Device>(Device.fromXml).toList(),
2729
);
2830
}
2931

@@ -62,7 +64,10 @@ class Device with _$Device {
6264
}) = _Device;
6365

6466
factory Device.fromXml(XmlElement element) {
65-
assert(element.name.toString() == 'device');
67+
assert(
68+
element.name.toString() == 'device',
69+
'element must be a <device> element.',
70+
);
6671

6772
return Device(
6873
identifier: element.getAttribute('identifier') ?? '',

lib/src/api/aha/models/switch_status.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import 'package:aha_client/src/api/util/text_converter.dart';
21
import 'package:freezed_annotation/freezed_annotation.dart';
32

3+
import '../../util/text_converter.dart';
4+
45
part 'switch_status.freezed.dart';
56

67
@freezed

lib/src/api/aha_client.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class AhaClient {
3333
XmlConverter()..registerConverter(SessionInfo.converter),
3434
TextConverter()..registerConverter(SwitchStatus.converter),
3535
]),
36-
interceptors: [
36+
interceptors: <dynamic>[
3737
loginManager,
3838
],
3939
authenticator: loginManager,

lib/src/api/login/login_manager.dart

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import 'dart:async';
22
import 'dart:convert';
33

4-
import 'package:aha_client/src/api/login/login_info.dart';
54
import 'package:chopper/chopper.dart';
65
import 'package:convert/convert.dart';
76
import 'package:cryptography/cryptography.dart';
87
import 'package:meta/meta.dart';
98

109
import 'authentication_exception.dart';
10+
import 'login_info.dart';
1111
import 'login_service.dart';
1212
import 'models/right.dart';
1313
import 'models/session_info.dart';
@@ -86,7 +86,11 @@ abstract class LoginManager implements RequestInterceptor, Authenticator {
8686

8787
@override
8888
@internal
89-
FutureOr<Request?> authenticate(Request request, Response response) async {
89+
FutureOr<Request?> authenticate(
90+
Request request,
91+
Response response, [
92+
Request? originalRequest,
93+
]) async {
9094
if (response.statusCode != 403 || request.isLogin) {
9195
return null;
9296
}
@@ -102,7 +106,7 @@ abstract class LoginManager implements RequestInterceptor, Authenticator {
102106
}
103107

104108
Request _copyRequestWithSid(Request request) => request.copyWith(
105-
parameters: {
109+
parameters: <String, dynamic>{
106110
...request.parameters,
107111
'sid': _sid,
108112
},
@@ -118,13 +122,11 @@ abstract class LoginManager implements RequestInterceptor, Authenticator {
118122
}
119123
}
120124

121-
Future<SessionInfo> _getLoginStatus() async {
122-
return _extractSessionInfo(
123-
_sid == SessionInfo.invalidSid
124-
? await _loginService.getLoginStatus()
125-
: await _loginService.checkSessionValid(sid: _sid),
126-
);
127-
}
125+
Future<SessionInfo> _getLoginStatus() async => _extractSessionInfo(
126+
_sid == SessionInfo.invalidSid
127+
? await _loginService.getLoginStatus()
128+
: await _loginService.checkSessionValid(sid: _sid),
129+
);
128130

129131
Future<SessionInfo> _performLogin(
130132
SessionInfo sessionInfo,
@@ -133,7 +135,8 @@ abstract class LoginManager implements RequestInterceptor, Authenticator {
133135
final blockDelay = sessionInfo.blockTime > 0
134136
? Duration(seconds: sessionInfo.blockTime)
135137
: null;
136-
final blockTimeout = blockDelay != null ? Future.delayed(blockDelay) : null;
138+
final blockTimeout =
139+
blockDelay != null ? Future<void>.delayed(blockDelay) : null;
137140

138141
final credentials = await obtainCredentials(
139142
LoginInfo(
@@ -216,5 +219,5 @@ abstract class LoginManager implements RequestInterceptor, Authenticator {
216219
}
217220

218221
extension _RequestX on Request {
219-
bool get isLogin => url.contains('/login_sid.lua');
222+
bool get isLogin => url.path.endsWith('/login_sid.lua');
220223
}

lib/src/api/login/models/right.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,14 @@ class Right with _$Right {
2525
}) = _Right;
2626

2727
factory Right.fromXml(XmlElement nameElement, XmlElement accessElement) {
28-
assert(nameElement.name.toString() == 'Name');
29-
assert(accessElement.name.toString() == 'Access');
28+
assert(
29+
nameElement.name.toString() == 'Name',
30+
'nameElement must be a <Name> element',
31+
);
32+
assert(
33+
accessElement.name.toString() == 'Access',
34+
'accessElement must be an <Access> element.',
35+
);
3036

3137
final access = AccessLevel.values[int.parse(accessElement.text)];
3238

lib/src/api/login/models/session_info.dart

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,14 @@ class SessionInfo with _$SessionInfo {
2626
}) = _SessionInfo;
2727

2828
factory SessionInfo.fromXml(XmlElement element) {
29-
assert(element.name.toString() == 'SessionInfo');
29+
assert(
30+
element.name.toString() == 'SessionInfo',
31+
'element must be a <SessionInfo> element',
32+
);
3033

3134
final rights =
3235
element.getElement('Rights')?.childElements.toList() ?? const [];
33-
assert(rights.length % 2 == 0, 'Rights must contain pairs of elements');
36+
assert(rights.length.isEven, 'Rights must contain pairs of elements');
3437

3538
final parsedRights = <Right>[];
3639
for (var i = 0; i < rights.length; i += 2) {
@@ -43,14 +46,13 @@ class SessionInfo with _$SessionInfo {
4346
sid: element.getElement('SID')!.text,
4447
challange: element.getElement('Challenge')!.text,
4548
blockTime: int.parse(element.getElement('BlockTime')!.text),
46-
users: List.unmodifiable(
47-
element
48-
.getElement('Users')
49-
?.childElements
50-
.map((e) => User.fromXml(e)) ??
51-
const [],
52-
),
53-
rights: List.unmodifiable(parsedRights),
49+
users: element
50+
.getElement('Users')
51+
?.childElements
52+
.map(User.fromXml)
53+
.toList() ??
54+
const [],
55+
rights: parsedRights,
5456
);
5557
}
5658

lib/src/api/login/models/user.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ class User with _$User {
1414
}) = _User;
1515

1616
factory User.fromXml(XmlElement element) {
17-
assert(element.name.toString() == 'User');
17+
assert(
18+
element.name.toString() == 'User',
19+
'element must be a <User> element.',
20+
);
1821
return User(
1922
element.text,
2023
last: element.getAttribute('last') == '1',

0 commit comments

Comments
 (0)