43 lines
1.3 KiB
Dart
43 lines
1.3 KiB
Dart
import 'package:seshat/data/services/api_client.dart';
|
|
import 'package:seshat/domain/models/bal.dart';
|
|
import 'package:seshat/domain/models/book.dart';
|
|
import 'package:seshat/domain/models/book_instance.dart';
|
|
import 'package:seshat/domain/models/owner.dart';
|
|
import 'package:seshat/domain/models/search_result.dart';
|
|
import 'package:seshat/utils/result.dart';
|
|
|
|
class BookInstanceRepository {
|
|
BookInstanceRepository({required ApiClient apiClient})
|
|
: _apiClient = apiClient;
|
|
|
|
final ApiClient _apiClient;
|
|
|
|
Future<Result<List<BookInstance>>> getByEan(int balId, int ean) async {
|
|
return await _apiClient.getBookInstanceByEAN(balId, ean);
|
|
}
|
|
|
|
Future<Result<List<SearchResult>>> getBySearch(
|
|
int balId,
|
|
String title,
|
|
String author,
|
|
) async {
|
|
return await _apiClient.getBookInstanceBySearch(balId, title, author);
|
|
}
|
|
|
|
Future<Result<BookInstance>> sendBook(
|
|
Book book,
|
|
Owner owner,
|
|
Bal bal,
|
|
double price,
|
|
) async {
|
|
return await _apiClient.sendBook(book, owner, bal, price);
|
|
}
|
|
|
|
Future<Result<void>> sellBooks(List<BookInstance> books) async {
|
|
Map<String, double?> res = {};
|
|
for (BookInstance instance in books) {
|
|
res[instance.id.toString()] = instance.soldPrice;
|
|
}
|
|
return await _apiClient.sellBooks(res);
|
|
}
|
|
}
|