58 lines
1.5 KiB
Dart
58 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import '../repositories/face_repository.dart';
|
|
import '../repositories/signature_repository.dart';
|
|
|
|
class SetupCheckProvider extends ChangeNotifier {
|
|
final FaceRepository _faceRepository = FaceRepository();
|
|
final SignatureRepository _signatureRepository = SignatureRepository();
|
|
|
|
bool _isLoading = false;
|
|
bool _hasFace = false;
|
|
bool _hasSignature = false;
|
|
bool _hasError = false;
|
|
|
|
bool get isLoading => _isLoading;
|
|
bool get hasFace => _hasFace;
|
|
bool get hasSignature => _hasSignature;
|
|
bool get hasError => _hasError;
|
|
|
|
Future<void> checkSetup() async {
|
|
_isLoading = true;
|
|
_hasError = false;
|
|
notifyListeners();
|
|
|
|
try {
|
|
final results = await Future.wait([
|
|
_faceRepository.getFaceStatus(),
|
|
_signatureRepository.getActiveSignature(),
|
|
]);
|
|
|
|
final faceData = results[0];
|
|
final signatureData = results[1];
|
|
|
|
_hasFace = faceData['is_registered'] == true && faceData['status'] != 'rejected';
|
|
|
|
if (signatureData['error'] == true) {
|
|
_hasError = true;
|
|
_hasSignature = true;
|
|
} else {
|
|
_hasSignature = signatureData['success'] == true && signatureData['data'] != null;
|
|
}
|
|
} catch (e) {
|
|
_hasError = true;
|
|
_hasFace = true;
|
|
_hasSignature = true;
|
|
} finally {
|
|
_isLoading = false;
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
void reset() {
|
|
_isLoading = false;
|
|
_hasFace = false;
|
|
_hasSignature = false;
|
|
_hasError = false;
|
|
}
|
|
}
|