This commit is contained in:
Dmitry 2024-07-25 10:47:46 +03:00
parent 30fdd2a174
commit b297e12b4b
4 changed files with 7 additions and 4 deletions

View file

@ -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<String>('$path/user/create', data: {
'token': externalId,
'tokenType': idType.name,
'email': email,
'name': name,
});
//todo add client header encryption ??

View file

@ -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<UserDto> get user;
@ -14,12 +13,12 @@ abstract class Repository {
Future<(UserDto, String)> createOrGetUser(
String externalId,
ExternalIdType idType,
String email,
String? name,
);
Future<UserDto?> getUser();
void setAuthToken(String? authToken);
Future<void> updateUserData(UserDataDto data);

View file

@ -61,10 +61,11 @@ class UserManager {
Future<void> _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(