diff --git a/lib/backend/modules/account.dart b/lib/backend/modules/account.dart index 87de815..0f3724b 100644 --- a/lib/backend/modules/account.dart +++ b/lib/backend/modules/account.dart @@ -177,15 +177,12 @@ class AccountModule { final result = VerifyCodeResult(payload: data.cast()); final sessionToken = result.loginToken ?? result.registerToken; - final accountId = result.accountId; + final verifiedProfile = _profileFromVerifyPayload(result.payload); + final accountId = result.accountId ?? verifiedProfile?.id; if (sessionToken != null && accountId != null) { - final profileMap = data['profile']; - if (profileMap is Map) { - final profile = ProfileData.fromServerProfile( - profileMap.cast(), - ); - await AppDatabase.saveProfile(profile, isActive: true); + if (result.loginToken != null && verifiedProfile != null) { + await AppDatabase.saveProfile(verifiedProfile, isActive: true); } await TokenStorage.saveToken(sessionToken, accountId); await TokenStorage.setActiveAccount(accountId); @@ -195,6 +192,12 @@ class AccountModule { return result; } + ProfileData? _profileFromVerifyPayload(Map payload) { + final profileMap = payload['profile']; + if (profileMap is! Map) return null; + return ProfileData.fromServerProfile(profileMap.cast()); + } + Future completeRegistration({ required String token, required String firstName,