feat: honestly forgot
This commit is contained in:
parent
48bcf0b1f8
commit
da953ba651
19 changed files with 1097 additions and 244 deletions
51
lib/data/repositories/bal_repository.dart
Normal file
51
lib/data/repositories/bal_repository.dart
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import 'package:seshat/data/services/api_client.dart';
|
||||
import 'package:seshat/domain/models/bal.dart';
|
||||
import 'package:seshat/utils/result.dart';
|
||||
|
||||
class BalRepository {
|
||||
BalRepository({required ApiClient apiClient}) : _apiClient = apiClient;
|
||||
|
||||
final ApiClient _apiClient;
|
||||
List<Bal>? _bals;
|
||||
|
||||
Future<Result<List<Bal>>> getBals() async {
|
||||
if (_bals != null) {
|
||||
return Result.ok(_bals!);
|
||||
}
|
||||
final result = await _apiClient.getBals();
|
||||
switch (result) {
|
||||
case Ok():
|
||||
_bals = result.value;
|
||||
return Result.ok(result.value);
|
||||
case Error():
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Future<Result<Bal>> balById(int id) async {
|
||||
if (_bals == null) {
|
||||
await getBals();
|
||||
}
|
||||
Bal? bal = _bals!.where((bal) => bal.id == id).firstOrNull;
|
||||
if (bal != null) {
|
||||
return Result.ok(bal);
|
||||
}
|
||||
final result = await _apiClient.getBalById(id);
|
||||
switch (result) {
|
||||
case Ok():
|
||||
return Result.ok(result.value);
|
||||
case Error():
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Future<Result<void>> addBal(String name) async {
|
||||
final result = await _apiClient.addBal(name);
|
||||
switch (result) {
|
||||
case Ok():
|
||||
return result;
|
||||
case Error():
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in a new issue