refactor: move identifier type detection into AuthenticationIdentifier
This commit is contained in:
parent
2fdf3e8284
commit
846c96e90d
|
|
@ -21,6 +21,11 @@
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import 'authentication_types.dart';
|
||||||
|
import 'authentication_user_identifier.dart';
|
||||||
|
import 'authentication_phone_identifier.dart';
|
||||||
|
import 'authentication_third_party_identifier.dart';
|
||||||
|
|
||||||
class AuthenticationIdentifier {
|
class AuthenticationIdentifier {
|
||||||
String type;
|
String type;
|
||||||
|
|
||||||
|
|
@ -29,6 +34,19 @@ class AuthenticationIdentifier {
|
||||||
AuthenticationIdentifier.fromJson(Map<String, dynamic> json)
|
AuthenticationIdentifier.fromJson(Map<String, dynamic> json)
|
||||||
: type = json['type'];
|
: type = json['type'];
|
||||||
|
|
||||||
|
factory AuthenticationIdentifier.subFromJson(Map<String, dynamic> json) {
|
||||||
|
switch (json['type']) {
|
||||||
|
case AuthenticationIdentifierTypes.userId:
|
||||||
|
return AuthenticationUserIdentifier.fromJson(json);
|
||||||
|
case AuthenticationIdentifierTypes.phone:
|
||||||
|
return AuthenticationPhoneIdentifier.fromJson(json);
|
||||||
|
case AuthenticationIdentifierTypes.thirdParty:
|
||||||
|
return AuthenticationThirdPartyIdentifier.fromJson(json);
|
||||||
|
default:
|
||||||
|
return AuthenticationIdentifier.fromJson(json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final data = <String, dynamic>{};
|
final data = <String, dynamic>{};
|
||||||
data['type'] = type;
|
data['type'] = type;
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,6 @@ import 'authentication_user_identifier.dart';
|
||||||
|
|
||||||
import 'authentication_data.dart';
|
import 'authentication_data.dart';
|
||||||
import 'authentication_identifier.dart';
|
import 'authentication_identifier.dart';
|
||||||
import 'authentication_phone_identifier.dart';
|
|
||||||
import 'authentication_third_party_identifier.dart';
|
|
||||||
import 'authentication_types.dart';
|
import 'authentication_types.dart';
|
||||||
|
|
||||||
class AuthenticationPassword extends AuthenticationData {
|
class AuthenticationPassword extends AuthenticationData {
|
||||||
|
|
@ -47,21 +45,8 @@ class AuthenticationPassword extends AuthenticationData {
|
||||||
AuthenticationPassword.fromJson(Map<String, dynamic> json)
|
AuthenticationPassword.fromJson(Map<String, dynamic> json)
|
||||||
: user = json['user'],
|
: user = json['user'],
|
||||||
password = json['password'],
|
password = json['password'],
|
||||||
identifier = AuthenticationIdentifier.fromJson(json['identifier']),
|
identifier = AuthenticationIdentifier.subFromJson(json['identifier']),
|
||||||
super.fromJson(json) {
|
super.fromJson(json);
|
||||||
switch (identifier.type) {
|
|
||||||
case AuthenticationIdentifierTypes.userId:
|
|
||||||
identifier = AuthenticationUserIdentifier.fromJson(json['identifier']);
|
|
||||||
break;
|
|
||||||
case AuthenticationIdentifierTypes.phone:
|
|
||||||
identifier = AuthenticationPhoneIdentifier.fromJson(json['identifier']);
|
|
||||||
break;
|
|
||||||
case AuthenticationIdentifierTypes.thirdParty:
|
|
||||||
identifier =
|
|
||||||
AuthenticationThirdPartyIdentifier.fromJson(json['identifier']);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue