46 lines
1.2 KiB
Dart
46 lines
1.2 KiB
Dart
import 'package:isar/isar.dart';
|
|
import 'package:mnemo_cards_backend/cron/task.dart';
|
|
import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
|
|
import 'package:mnemo_cards_backend/tests/test_manager.dart';
|
|
|
|
import '../main.dart';
|
|
|
|
class TestGeneratorTask with Task {
|
|
final TestManager _testManager;
|
|
|
|
TestGeneratorTask(this._testManager);
|
|
|
|
@override
|
|
String get name => 'test_gen';
|
|
|
|
@override
|
|
Future<void> task() async {
|
|
print('Refreshing custom test data...');
|
|
try {
|
|
await _testManager.refreshCustomCreationTestsData();
|
|
} catch (e) {
|
|
print(e);
|
|
}
|
|
print('Refreshed custom test data');
|
|
final models = await isar.txn(() => isar.cardPackModels.where().findAll());
|
|
print('Will generate tests for ${models.length} packs');
|
|
int ok = 0;
|
|
for (final model in models) {
|
|
try {
|
|
await _testManager.updateGeneratedTests(model);
|
|
ok++;
|
|
} catch (e) {
|
|
print(e);
|
|
}
|
|
}
|
|
print('Generated tests for $ok packs');
|
|
print('Deleting old test stats');
|
|
final count = await isar.writeTxn(() {
|
|
return isar.testStatisticsModels.filter().testIsNull().deleteAll();
|
|
});
|
|
print('deleted $count old test stats');
|
|
}
|
|
|
|
@override
|
|
int get intervalSeconds => 60 * 30;
|
|
}
|