Merge branch 'feat/fd-905' into feat/fd-1023

This commit is contained in:
J. A. Messias 2024-12-09 09:37:45 -03:00
commit b3d7bfa6d5
3 changed files with 25 additions and 13 deletions

View File

@ -9,7 +9,6 @@ class LocalsLocalDataSourceImpl {
Future<void> unlinkLocal() async { Future<void> unlinkLocal() async {
await StorageHelper().set(KeychainStorageKey.clientUUID.value, ''); await StorageHelper().set(KeychainStorageKey.clientUUID.value, '');
await StorageHelper().set(KeychainStorageKey.ownerName.value, '');
await StorageHelper().set(KeychainStorageKey.clientName.value, ''); await StorageHelper().set(KeychainStorageKey.clientName.value, '');
await StorageHelper().set(KeychainStorageKey.ownerName.value, ''); await StorageHelper().set(KeychainStorageKey.ownerName.value, '');
} }

View File

@ -18,11 +18,12 @@ import 'package:hub/shared/utils/dialog_util.dart';
import 'package:hub/shared/utils/snackbar_util.dart'; import 'package:hub/shared/utils/snackbar_util.dart';
abstract class LocalsRemoteDataSource { abstract class LocalsRemoteDataSource {
Future<void> checkLocals(BuildContext context); Future<void> linkLocal(BuildContext context);
Future<bool> checkLocals(BuildContext context);
Future<bool> processLocals(BuildContext context) ; Future<bool> processLocals(BuildContext context) ;
Future<bool> processData(BuildContext context); Future<bool> processData(BuildContext context);
Future<bool> selectLocal(BuildContext context, ApiCallResponse? response) ; Future<bool> selectLocal(BuildContext context, ApiCallResponse? response) ;
Future<void> detachLocal(BuildContext context) ; Future<void> detachLocal(BuildContext context);
} }
class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource {
@ -31,7 +32,7 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource {
LocalsRemoteDataSourceImpl._internal(); LocalsRemoteDataSourceImpl._internal();
@override @override
Future<void> checkLocals(BuildContext context) async { Future<void> linkLocal(BuildContext context) async {
try { try {
final GetLocalsCall callback = PhpGroup.getLocalsCall; final GetLocalsCall callback = PhpGroup.getLocalsCall;
var response = await callback.call(); var response = await callback.call();
@ -142,6 +143,13 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource {
} }
} }
@override
Future<bool> checkLocals(BuildContext context) async {
String cliUUID = (await StorageHelper().get(KeychainStorageKey.clientUUID.value)) ?? '';
String cliName = (await StorageHelper().get(KeychainStorageKey.clientName.value)) ?? '';
return cliUUID.isEmpty && cliName.isEmpty;
}
@override @override
Future<bool> processData(BuildContext context) async { Future<bool> processData(BuildContext context) async {
try { try {

View File

@ -20,7 +20,7 @@ class LocalsRepositoryImpl implements LocalsRepository {
@override @override
Future<void> validateLocal(BuildContext context) async { Future<void> validateLocal(BuildContext context) async {
return await remoteDataSource.checkLocals(context); return await remoteDataSource.linkLocal(context);
} }
@override @override
@ -49,17 +49,22 @@ class LocalsRepositoryImpl implements LocalsRepository {
Future<bool> _handleReponse(BuildContext context) async { Future<bool> _handleReponse(BuildContext context) async {
bool response = false; bool response = false;
final bool isUnselected = await remoteDataSource.checkLocals(context);
if (isUnselected) {
while (!response) { while (!response) {
try { try {
response = await remoteDataSource.processLocals(context); response = await remoteDataSource.processLocals(context);
if (!response) { if (!response) {
await _handleUpdateError(context); await _handleUpdateError(context);
} }
} catch (e , s) { } catch (e, s) {
log('Error updating locals: $e', stackTrace: s); log('Error updating locals: $e', stackTrace: s);
await _handleUpdateError(context); await _handleUpdateError(context);
} }
} }
} else {
return true;
}
return response; return response;
} }