aves_mio/lib/remote/run_remote_sync.dart
Fabio Micheluz 452c378178
Some checks are pending
Quality check / Flutter analysis (push) Waiting to run
Quality check / CodeQL analysis (java-kotlin) (push) Waiting to run
f1
2026-02-28 13:42:46 +01:00

39 lines
1.3 KiB
Dart

// lib/remote/run_remote_sync.dart
import 'package:sqflite/sqflite.dart';
import 'remote_client.dart';
import 'remote_repository.dart';
import 'auth_client.dart';
/// Esegue login, scarica /photos e fa upsert nel DB.
/// Configura qui baseUrl/indexPath/email/password (o spostali in Settings).
Future<void> runRemoteSyncOnce({
required Database db,
String baseUrl = 'https://prova.patachina.it',
String indexPath = 'photos/', // rotta protetta dal tuo server
String email = 'fabio@gmail.com', // TODO: passare da Settings/secure storage
String password = 'master66', // idem
}) async {
try {
final auth = RemoteAuth(baseUrl: baseUrl, email: email, password: password);
// login (facoltativo: RemoteJsonClient lo chiamerebbe on-demand)
await auth.login();
final client = RemoteJsonClient(baseUrl, indexPath, auth: auth);
final items = await client.fetchAll();
print("TIPO ITEMS: ${items.runtimeType}");
print("TIPO ELEMENTO 0: ${items.first.runtimeType}");
final repo = RemoteRepository(db);
await repo.upsertAll(items);
final c = await repo.countRemote();
// ignore: avoid_print
print('[remote-sync] importati remoti: $c (base=$baseUrl, index=$indexPath)');
} catch (e, st) {
// ignore: avoid_print
print('[remote-sync][ERROR] $e\n$st');
rethrow;
}
}