Refactored json storage
This commit is contained in:
35
lib/repositories/transactions/transactions_repository.dart
Normal file
35
lib/repositories/transactions/transactions_repository.dart
Normal file
@@ -0,0 +1,35 @@
|
||||
import 'package:rxdart/subjects.dart';
|
||||
import 'package:tunas/repositories/json/json_repository.dart';
|
||||
import 'package:tunas/repositories/transactions/models/transaction.dart';
|
||||
import 'package:tunas/repositories/transactions/models/transactions.dart';
|
||||
|
||||
class TransactionsRepository {
|
||||
|
||||
final JsonRepository _jsonRepository;
|
||||
final _transactionsController = BehaviorSubject<List<Transaction>>.seeded(const []);
|
||||
|
||||
TransactionsRepository({
|
||||
required jsonRepository,
|
||||
}) : _jsonRepository = jsonRepository;
|
||||
|
||||
Stream<List<Transaction>> getTransactionsStream() {
|
||||
return _transactionsController.asBroadcastStream();
|
||||
}
|
||||
|
||||
loadTransactions() async {
|
||||
Transactions transactions = await _jsonRepository.loadJson(Transactions(), TransactionsFactory());
|
||||
_transactionsController.add(transactions.transactions);
|
||||
}
|
||||
|
||||
saveTransactions(List<Transaction> transactionsList) async {
|
||||
Transactions transactions = Transactions(transactions: transactionsList);
|
||||
await _jsonRepository.saveJson(transactions);
|
||||
_transactionsController.add(transactionsList);
|
||||
}
|
||||
|
||||
deleteTransactions() async {
|
||||
Transactions transactions = Transactions();
|
||||
await _jsonRepository.saveJson(transactions);
|
||||
_transactionsController.add([]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user