auth_service.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'package:drift/drift.dart';
  2. import '../database/daos/agenti_dao.dart';
  3. import '../database/daos/parametri_dao.dart';
  4. import '../database/database.dart';
  5. import '../database/tables/parametri.dart';
  6. import '../core/constants.dart';
  7. import 'api_service.dart';
  8. class AuthService {
  9. final AgentiDao _agentiDao;
  10. final ApiService _apiService;
  11. final ParametriDao _parametriDao;
  12. AuthService(this._agentiDao, this._apiService, this._parametriDao);
  13. Future<Agente?> login(String code, String password) async {
  14. return _agentiDao.authenticate(code, password);
  15. }
  16. Future<bool> checkRemoteAgent(String code) async {
  17. try {
  18. final resp = await _apiService.get('/rest/agente/esisteNew/$code');
  19. return resp['status'] == 0;
  20. } catch (_) {
  21. return false;
  22. }
  23. }
  24. Future<void> initializeAgent({
  25. required String codAgente,
  26. required String pwd,
  27. String? ragioneSociale,
  28. required String url,
  29. }) async {
  30. await _parametriDao.set(AppConstants.kUrlParam, url);
  31. await _agentiDao.insertAgente(AgentiCompanion(
  32. codAgente: Value(codAgente),
  33. pwd: Value(pwd),
  34. ragioneSociale: Value(ragioneSociale ?? codAgente),
  35. attivo: const Value(1),
  36. ));
  37. }
  38. Future<String?> getSavedUrl() => _parametriDao.read(AppConstants.kUrlParam);
  39. Future<bool> isInitialized() async {
  40. final count = await _agentiDao.countAgenti();
  41. final url = await _parametriDao.read(AppConstants.kUrlParam);
  42. return count > 0 && url != null && url.isNotEmpty;
  43. }
  44. }