diff --git a/build/app/outputs/flutter-apk/app-arm64-v8a-release.apk b/build/app/outputs/flutter-apk/app-arm64-v8a-release.apk index aca03ba..7d6eadd 100644 Binary files a/build/app/outputs/flutter-apk/app-arm64-v8a-release.apk and b/build/app/outputs/flutter-apk/app-arm64-v8a-release.apk differ diff --git a/lib/managers/repository/http_repository.dart b/lib/managers/repository/http_repository.dart index 91b562f..d87cf43 100644 --- a/lib/managers/repository/http_repository.dart +++ b/lib/managers/repository/http_repository.dart @@ -41,12 +41,14 @@ class HttpRepository extends Repository with Api { Future<(UserDto, String)> createOrGetUser( String externalId, ExternalIdType idType, + String email, String? name, ) async { try { final r = await _dio.post('$path/user/create', data: { 'token': externalId, 'tokenType': idType.name, + 'email': email, 'name': name, }); //todo add client header encryption ?? diff --git a/lib/managers/repository/repository.dart b/lib/managers/repository/repository.dart index 0230309..4b82a0b 100644 --- a/lib/managers/repository/repository.dart +++ b/lib/managers/repository/repository.dart @@ -1,7 +1,6 @@ import 'package:mnemo_cards/managers/user_manager.dart'; import 'package:mnemo_cards_common/mnemo_cards_common.dart'; - abstract class Repository { Future get user; @@ -14,12 +13,12 @@ abstract class Repository { Future<(UserDto, String)> createOrGetUser( String externalId, ExternalIdType idType, + String email, String? name, ); Future getUser(); - void setAuthToken(String? authToken); Future updateUserData(UserDataDto data); diff --git a/lib/managers/user_manager.dart b/lib/managers/user_manager.dart index fcff973..fac67dd 100644 --- a/lib/managers/user_manager.dart +++ b/lib/managers/user_manager.dart @@ -61,10 +61,11 @@ class UserManager { Future _createUser( String externalId, ExternalIdType idType, + String email, String? name, ) async { final (user, token) = - await _repository.createOrGetUser(externalId, idType, name); + await _repository.createOrGetUser(externalId, idType, email, name); await _setAuthToken(token); userStateHolder.setUser(user); } @@ -124,11 +125,12 @@ class UserManager { .distinct((p, n) => p?.id == n?.id) .listen((account) async { if (account != null) { + final email = account.email; final name = account.displayName; final externalToken = await account.authentication.then((value) => value.idToken); Analytics.login(ExternalIdType.google); - await _createUser(externalToken!, ExternalIdType.google, name); + await _createUser(externalToken!, ExternalIdType.google, email, name); } })) ..add(