MIF_E31230910_MP-HRIS-MOBILE/lib/providers/setup_check_provider.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;
}
}