import 'dart:convert'; import 'package:tunas/clients/storage/storage_client.dart'; import 'package:tunas/repositories/json/models/json.dart'; class JsonRepository { String accountFile = 'tunas_main_account.json'; final StorageClient _storageClient; JsonRepository({ required storageClient, }) : _storageClient = storageClient; saveJson(Json json) async { await _storageClient.save(json.getJsonFileName(), jsonEncode(json.toJson())); } Future loadJson(Json json, JsonFactory jsonFactory) async { String jsonString = await _storageClient.load(json.getJsonFileName()); if (jsonString.isEmpty) { return jsonFactory.fromJson({}); } else { return jsonFactory.fromJson(jsonDecode(jsonString)); } } deleteJson(Json json) async { await _storageClient.delete(json.getJsonFileName()); } }