flutter-freaccess-hub/lib/shared/services/license/license_service.dart

115 lines
3.5 KiB
Dart

// ignore_for_file: curly_braces_in_flow_control_structures, prefer_is_empty
import 'dart:developer';
import 'package:hub/backend/api_requests/api_calls.dart';
import 'package:hub/shared/helpers/base_storage.dart';
import 'package:hub/shared/helpers/sqlite_storage.dart';
import 'dart:convert';
import 'package:hub/shared/helpers/storage_helper.dart';
import 'package:sqflite/sqflite.dart';
class LicenseService {
static final LicenseService _instance = LicenseService._internal();
factory LicenseService() => _instance;
LicenseService._internal();
static Future<void> initLicenseService() async {
// for (var element in LicenseStorageKey.values.map((e) => e.value)) {
// await SQLiteStorage.database.insert(
// SQLiteStorage.tableLicense,
// {
// 'key': element,
// 'display': 'VISIVEL',
// 'expirationDate': '',
// 'startDate': '',
// 'quantity': '',
// },
// conflictAlgorithm: ConflictAlgorithm.ignore,
// );
// }
}
static Future<void> processLicense() async {}
static Future<void> fetchLicenses() async {
try {
log('Obtendo licenças...');
final ApiCallResponse response = await PhpGroup.testCall();
final List<dynamic> responseBody = response.jsonBody;
if (responseBody == []) {
// throw Exception('Licensa ausente ou vazia.');
}
if (response.jsonBody is! List<dynamic> && response.jsonBody['error'] != null) {
final String error = response.jsonBody['error_msg'] ?? 'Erro desconhecido';
throw Exception('Erro ao consultar licenças: $error');
}
for (var element in responseBody) {
switch (element['key']) {
case 'FRE-HUB-MESSAGES':
_saveModule(element);
break;
case 'FRE-HUB-LIBERATIONS':
_saveModule(element);
break;
case 'FRE-HUB-RESERVATIONS':
_saveModule(element);
break;
case 'FRE-HUB-ACCESS':
_saveModule(element);
break;
case 'FRE-HUB-OPENED-VISITS':
_saveModule(element);
break;
case 'FRE-HUB-VEHICLES':
_saveModule(element);
break;
case 'FRE-HUB-RESIDENTS':
_saveModule(element);
break;
case 'FRE-HUB-PETS':
_saveModule(element);
break;
case 'FRE-HUB-FASTPASS':
_saveModule(element);
break;
case 'FRE-HUB-ORDERS':
_saveModule(element);
break;
case 'FRE-HUB-COMPLETE-SCHEDULE':
_saveModule(element);
break;
case 'FRE-HUB-AGE-PROV-DELIVERY':
_saveModule(element);
break;
case 'FRE-HUB-AGE-PROV-PRESTADOR':
_saveModule(element);
break;
case 'FRE-WHATSAPP':
_saveModule(element);
break;
}
}
} catch (e, s) {
log('Erro ao obter licença', error: e, stackTrace: s);
}
}
static Future<void> _saveModule(final dynamic body) async {
if (body is Map<String, dynamic>) log('Salvando módulo: ${body.toString()}');
// if (body is Map<String, dynamic>) await StorageHelper().set(body['key'], '', Storage.SQLiteStorage);
if (body is Map<String, dynamic>) await StorageHelper().set(body['key'], jsonEncode(body), Storage.SQLiteStorage);
}
static Future<void> updateLicense(final dynamic body) async {}
static Future<void> catchLicense() async {
await PhpGroup.getLicense();
}
}