From 18b2dd9c96573f3f042736ee5a83db97678cbeb8 Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Thu, 8 Dec 2022 20:56:46 +0800 Subject: [PATCH] Prefer immutable fields --- app/lib/api/api_util.dart | 41 ++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/app/lib/api/api_util.dart b/app/lib/api/api_util.dart index b8c86a59..d58a1cc9 100644 --- a/app/lib/api/api_util.dart +++ b/app/lib/api/api_util.dart @@ -166,11 +166,18 @@ Stream> pollAppPassword( } class InitiateLoginResponse { - InitiateLoginResponse.fromJsonString(String jsonString) { + const InitiateLoginResponse({ + required this.poll, + required this.login, + }); + + factory InitiateLoginResponse.fromJsonString(String jsonString) { final json = jsonDecode(jsonString); - poll = InitiateLoginPollOptions( - json['poll']['token'], json['poll']['endpoint']); - login = json['login']; + return InitiateLoginResponse( + poll: InitiateLoginPollOptions( + json['poll']['token'], json['poll']['endpoint']), + login: json['login'], + ); } @override @@ -181,8 +188,8 @@ class InitiateLoginResponse { "}"; } - late InitiateLoginPollOptions poll; - late String login; + final InitiateLoginPollOptions poll; + final String login; } class InitiateLoginPollOptions { @@ -210,11 +217,19 @@ class InitiateLoginPollOptions { abstract class AppPasswordResponse {} class AppPasswordSuccess implements AppPasswordResponse { - AppPasswordSuccess.fromJsonString(String jsonString) { + const AppPasswordSuccess({ + required this.server, + required this.loginName, + required this.appPassword, + }); + + factory AppPasswordSuccess.fromJsonString(String jsonString) { final json = jsonDecode(jsonString); - server = Uri.parse(json['server']); - loginName = json['loginName']; - appPassword = json['appPassword']; + return AppPasswordSuccess( + server: Uri.parse(json['server']), + loginName: json['loginName'], + appPassword: json['appPassword'], + ); } @override @@ -226,9 +241,9 @@ class AppPasswordSuccess implements AppPasswordResponse { "}"; } - late Uri server; - late String loginName; - late String appPassword; + final Uri server; + final String loginName; + final String appPassword; } class AppPasswordPending implements AppPasswordResponse {}