WIP
This commit is contained in:
parent
0f2c5c2fd4
commit
2829403814
|
@ -56,8 +56,71 @@ class PhpGroup {
|
||||||
static GetPets getPets = GetPets();
|
static GetPets getPets = GetPets();
|
||||||
static GetPetPhoto getPetPhoto = GetPetPhoto();
|
static GetPetPhoto getPetPhoto = GetPetPhoto();
|
||||||
static UnregisterDevice unregisterDevice = UnregisterDevice();
|
static UnregisterDevice unregisterDevice = UnregisterDevice();
|
||||||
|
static GetLicense getLicense = GetLicense();
|
||||||
|
static TestCall testCall = TestCall();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class TestCall {
|
||||||
|
Future<ApiCallResponse> call() async {
|
||||||
|
const String accessKey = 'af7483f';
|
||||||
|
const String usuEmail = 'email_app@exemplo.com';
|
||||||
|
const String idDestino = '1';
|
||||||
|
|
||||||
|
return ApiManager.instance.makeApiCall(
|
||||||
|
callName: 'getLicense',
|
||||||
|
apiUrl: 'https://residenceapi.fre.com.br/getLicenca.php',
|
||||||
|
callType: ApiCallType.POST,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
'AccessKey': accessKey,
|
||||||
|
'UsuEmail': usuEmail,
|
||||||
|
'idDestino': idDestino,
|
||||||
|
},
|
||||||
|
bodyType: BodyType.X_WWW_FORM_URL_ENCODED,
|
||||||
|
returnBody: true,
|
||||||
|
encodeBodyUtf8: false,
|
||||||
|
decodeUtf8: false,
|
||||||
|
cache: false,
|
||||||
|
isStreamingApi: false,
|
||||||
|
alwaysAllowBody: false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class GetLicense {
|
||||||
|
Future<ApiCallResponse> call() async {
|
||||||
|
final String baseUrl = PhpGroup.getBaseUrl();
|
||||||
|
final String devUUID = (await StorageHelper().get(SQLiteStorageKey.devUUID.value, Storage.SQLiteStorage)) ?? '';
|
||||||
|
final String userUUID = (await StorageHelper().get(SQLiteStorageKey.userUUID.value, Storage.SQLiteStorage)) ?? '';
|
||||||
|
final String cliID = (await StorageHelper().get(SQLiteStorageKey.clientUUID.value, Storage.SQLiteStorage)) ?? '';
|
||||||
|
|
||||||
|
return ApiManager.instance.makeApiCall(
|
||||||
|
callName: 'getLicense',
|
||||||
|
apiUrl: '$baseUrl/processRequest.php',
|
||||||
|
callType: ApiCallType.POST,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
'devUUID': devUUID,
|
||||||
|
'userUUID': userUUID,
|
||||||
|
'cliID': cliID,
|
||||||
|
'atividade': 'getLicenca',
|
||||||
|
},
|
||||||
|
bodyType: BodyType.X_WWW_FORM_URL_ENCODED,
|
||||||
|
returnBody: true,
|
||||||
|
encodeBodyUtf8: false,
|
||||||
|
decodeUtf8: false,
|
||||||
|
cache: false,
|
||||||
|
isStreamingApi: false,
|
||||||
|
alwaysAllowBody: false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class UnregisterDevice {
|
class UnregisterDevice {
|
||||||
Future<ApiCallResponse> call() async {
|
Future<ApiCallResponse> call() async {
|
||||||
final String baseUrl = PhpGroup.getBaseUrl();
|
final String baseUrl = PhpGroup.getBaseUrl();
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
// 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 'dart:convert';
|
||||||
|
|
||||||
|
class LicenseService {
|
||||||
|
static final LicenseService _instance = LicenseService._internal();
|
||||||
|
|
||||||
|
factory LicenseService() => _instance;
|
||||||
|
LicenseService._internal();
|
||||||
|
|
||||||
|
List<Module> _modules = [];
|
||||||
|
|
||||||
|
List<Module> get modules => List.unmodifiable(_modules);
|
||||||
|
|
||||||
|
Future<void> initLicenseService() async {
|
||||||
|
await _fetchLicenses();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _fetchLicenses() async {
|
||||||
|
try {
|
||||||
|
log('Obtendo licenças...');
|
||||||
|
final ApiCallResponse response = await PhpGroup.testCall();
|
||||||
|
final String responseBody = response.jsonBody.toString();
|
||||||
|
|
||||||
|
if (responseBody.isEmpty) {
|
||||||
|
throw Exception('Licensa ausente ou vazia.');
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (responseBody == "[]") {
|
||||||
|
// log('Nenhuma licença encontrada.');
|
||||||
|
// _modules = [];
|
||||||
|
// log('() MOD => $_modules');
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
final dynamic jsonBody = jsonDecode(responseBody);
|
||||||
|
|
||||||
|
if (jsonBody is Map && jsonBody['error'] == true) {
|
||||||
|
final String error = jsonBody['error_msg'] ?? 'Erro desconhecido';
|
||||||
|
throw Exception('Erro ao consultar licenças: $error');
|
||||||
|
}
|
||||||
|
|
||||||
|
final bool isList = jsonBody is List;
|
||||||
|
final bool isMap = jsonBody is Map<String, dynamic>;
|
||||||
|
final dynamic license = isList
|
||||||
|
? (jsonBody).map<Module>((data) => Module.fromJson(data as Map<String, dynamic>)).toList()
|
||||||
|
: isMap
|
||||||
|
? [Module.fromJson(jsonBody)]
|
||||||
|
: [];
|
||||||
|
log('Modulos obtidos: $license');
|
||||||
|
if (license is List<Module> && license.isNotEmpty && license != _modules) {
|
||||||
|
_modules = license;
|
||||||
|
log('Licença obtida com sucesso');
|
||||||
|
log('$_modules');
|
||||||
|
} else if (license is List<Module> && license.isEmpty) {
|
||||||
|
throw Exception('Nenhum módulo encontrado.');
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
log('Erro ao obter licença', error: e, stackTrace: s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> checkLicense() async {
|
||||||
|
log('Verificando licença...');
|
||||||
|
await _fetchLicenses();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> catchLicense() async {
|
||||||
|
await PhpGroup.getLicense();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue