apk
This commit is contained in:
parent
30fdd2a174
commit
b297e12b4b
4 changed files with 7 additions and 4 deletions
Binary file not shown.
|
|
@ -41,12 +41,14 @@ class HttpRepository extends Repository with Api {
|
||||||
Future<(UserDto, String)> createOrGetUser(
|
Future<(UserDto, String)> createOrGetUser(
|
||||||
String externalId,
|
String externalId,
|
||||||
ExternalIdType idType,
|
ExternalIdType idType,
|
||||||
|
String email,
|
||||||
String? name,
|
String? name,
|
||||||
) async {
|
) async {
|
||||||
try {
|
try {
|
||||||
final r = await _dio.post<String>('$path/user/create', data: {
|
final r = await _dio.post<String>('$path/user/create', data: {
|
||||||
'token': externalId,
|
'token': externalId,
|
||||||
'tokenType': idType.name,
|
'tokenType': idType.name,
|
||||||
|
'email': email,
|
||||||
'name': name,
|
'name': name,
|
||||||
});
|
});
|
||||||
//todo add client header encryption ??
|
//todo add client header encryption ??
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import 'package:mnemo_cards/managers/user_manager.dart';
|
import 'package:mnemo_cards/managers/user_manager.dart';
|
||||||
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
|
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
|
||||||
|
|
||||||
|
|
||||||
abstract class Repository {
|
abstract class Repository {
|
||||||
Future<UserDto> get user;
|
Future<UserDto> get user;
|
||||||
|
|
||||||
|
|
@ -14,12 +13,12 @@ abstract class Repository {
|
||||||
Future<(UserDto, String)> createOrGetUser(
|
Future<(UserDto, String)> createOrGetUser(
|
||||||
String externalId,
|
String externalId,
|
||||||
ExternalIdType idType,
|
ExternalIdType idType,
|
||||||
|
String email,
|
||||||
String? name,
|
String? name,
|
||||||
);
|
);
|
||||||
|
|
||||||
Future<UserDto?> getUser();
|
Future<UserDto?> getUser();
|
||||||
|
|
||||||
|
|
||||||
void setAuthToken(String? authToken);
|
void setAuthToken(String? authToken);
|
||||||
|
|
||||||
Future<void> updateUserData(UserDataDto data);
|
Future<void> updateUserData(UserDataDto data);
|
||||||
|
|
|
||||||
|
|
@ -61,10 +61,11 @@ class UserManager {
|
||||||
Future<void> _createUser(
|
Future<void> _createUser(
|
||||||
String externalId,
|
String externalId,
|
||||||
ExternalIdType idType,
|
ExternalIdType idType,
|
||||||
|
String email,
|
||||||
String? name,
|
String? name,
|
||||||
) async {
|
) async {
|
||||||
final (user, token) =
|
final (user, token) =
|
||||||
await _repository.createOrGetUser(externalId, idType, name);
|
await _repository.createOrGetUser(externalId, idType, email, name);
|
||||||
await _setAuthToken(token);
|
await _setAuthToken(token);
|
||||||
userStateHolder.setUser(user);
|
userStateHolder.setUser(user);
|
||||||
}
|
}
|
||||||
|
|
@ -124,11 +125,12 @@ class UserManager {
|
||||||
.distinct((p, n) => p?.id == n?.id)
|
.distinct((p, n) => p?.id == n?.id)
|
||||||
.listen((account) async {
|
.listen((account) async {
|
||||||
if (account != null) {
|
if (account != null) {
|
||||||
|
final email = account.email;
|
||||||
final name = account.displayName;
|
final name = account.displayName;
|
||||||
final externalToken =
|
final externalToken =
|
||||||
await account.authentication.then((value) => value.idToken);
|
await account.authentication.then((value) => value.idToken);
|
||||||
Analytics.login(ExternalIdType.google);
|
Analytics.login(ExternalIdType.google);
|
||||||
await _createUser(externalToken!, ExternalIdType.google, name);
|
await _createUser(externalToken!, ExternalIdType.google, email, name);
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
..add(
|
..add(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue