WIP: LocalsREpositoryImpl().update

This commit is contained in:
J. A. Messias 2024-12-04 09:58:26 -03:00
parent 747596e833
commit 88f9b1f814
8 changed files with 27 additions and 24 deletions

View File

@ -35,7 +35,7 @@ class _HomePageWidgetState extends State<HomePageWidget> {
],
child: Builder(
builder: (context) {
context.read<LocalProfileBloc>().updateProfile(context);
// context.read<LocalProfileBloc>().updateProfile(context);
return Scaffold(
key: scaffoldKey,
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,

View File

@ -71,7 +71,6 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource {
@override
Future<bool> processLocals(BuildContext context) async {
try {
await LicenseRepositoryImpl().cleanLicense();
final GetLocalsCall callback = PhpGroup.getLocalsCall;
final ApiCallResponse response = await callback.call();
final bool? isError = response.jsonBody['error'];

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:hub/shared/components/molecules/locals/index.dart';
import 'package:hub/shared/components/molecules/modules/index.dart';
class LocalsRepositoryImpl implements LocalsRepository {
final LocalsRemoteDataSource remoteDataSource = LocalsRemoteDataSourceImpl();
@ -12,7 +13,7 @@ class LocalsRepositoryImpl implements LocalsRepository {
@override
Future<bool> update(BuildContext context) async {
final bool response = await remoteDataSource.processLocals(context);
final bool response = await LicenseRepositoryImpl().updateLicense();
context.read<LocalProfileBloc>().add(LocalProfileEvent());
return response;
}

View File

@ -36,10 +36,10 @@ class LocalProfileBloc extends Bloc<LocalProfileEvent, LocalProfileState> {
emit(state.copyWith(cliName: cliName, cliUUID: cliUUID));
}
void updateProfile(BuildContext context) {
add(LocalProfileEvent());
LocalsRepositoryImpl().update(context);
}
// void updateProfile(BuildContext context) {
// add(LocalProfileEvent());
// LocalsRepositoryImpl().update(context);
// }
}
class LocalProfileComponentModel extends FlutterFlowModel<LocalProfileComponentWidget> {

View File

@ -15,6 +15,7 @@ class MenuRepositoryImpl implements MenuRepository {
@override
Future<List<MenuItem?>> generateMenuEntries(List<MenuEntry> menuOptions, EnumMenuItem item) async {
log('Generating menu entries for $item');
List<MenuItem?> entries = [];
try {
for (var opt in menuOptions) {

View File

@ -13,7 +13,7 @@ abstract class LicenseRemoteDataSource {
Future<bool> fetchLicenses(bool isNewVersion);
Future<void> cleanLicense();
Future<void> processLicense();
Future<void> setupLicense(Database database, bool isNewVersion);
Future<bool> setupLicense(Database database, bool isNewVersion);
}
class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource {
@ -22,8 +22,8 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource {
LicenseRemoteDataSourceImpl._internal();
final StreamController<void> _completerController = StreamController<void>.broadcast();
Stream<void> get streamCompleterController => _completerController.stream;
final StreamController<void> completerController = StreamController<void>.broadcast();
Stream<void> get streamCompleterController => completerController.stream;
@override
@ -36,7 +36,8 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource {
}
@override
Future<void> setupLicense(Database database, bool isNewVersion) async {
Future<bool> setupLicense(Database database, bool isNewVersion) async {
log('Setting up license...');
final License license = await License.getLicense(isNewVersion);
final List<String> inactiveModuleKey = license.modules
@ -63,11 +64,12 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource {
await LicenseLocalDataSourceImpl().setDisplayByKey(disabledModuleKey, 'DESABILITADO');
}
LicenseRepositoryImpl.license.add(true);
return true;
}
@override
Future<bool> fetchLicenses(bool isNewVersion) async {
log('Fetching licenses...');
try {
final response = await PhpGroup.getLicense();
final dynamic responseBody = response.jsonBody;
@ -83,9 +85,7 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource {
}
if (responseBody == []) {
await setupLicense(DatabaseStorage.database, isNewVersion);
LicenseRepositoryImpl.license.add(false);
return false;
return await setupLicense(DatabaseStorage.database, isNewVersion);
}
List<Future<void>> saveOperations = [];
@ -95,15 +95,10 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource {
}
}
await Future.wait(saveOperations);
LicenseRepositoryImpl.license.add(true);
_completerController.add(null);
return true;
} catch (e, s) {
log('Erro ao obter licenças: $e', stackTrace: s);
await setupLicense(DatabaseStorage.database, isNewVersion);
return false;
return await setupLicense(DatabaseStorage.database, isNewVersion);
}
}

View File

@ -18,12 +18,16 @@ class LicenseRepositoryImpl implements LicenseRepository {
static get stream => license.stream;
Future<bool> updateLicense() async {
LicenseRepositoryImpl.license.add(false);
bool result = false;
final bool isNewVersion = await localDataSource.isNewVersion();
await remoteDataSource.setupLicense(database, isNewVersion);
result = await remoteDataSource.setupLicense(database, isNewVersion);
if (isNewVersion) {
return await remoteDataSource.fetchLicenses(isNewVersion);
result = await remoteDataSource.fetchLicenses(isNewVersion);
}
return false;
LicenseRepositoryImpl.license.add(result);
return result;
}

View File

@ -46,6 +46,9 @@ class DatabaseStorage {
if (version >= 3) {
await database.execute(updateDisplayTrigger);
}
if (version >= 4) {
await database.execute(updatePeopleDisplayTrigger);
}
}
Future<void> _onUpgrade(Database database, int oldVersion, int newVersion) async {