У меня есть этот блок c, который передает ответы продуктов:
class ProductModelBloc {
ProductModel _productModelRepository;
StreamController<Response<Product>> _productListController =
new BehaviorSubject();
StreamSink<Response<Product>> get productListSink =>
_productListController.sink;
Stream<Response<Product>> get productListStream =>
_productListController.stream;
ProductModelBloc() {
_productModelRepository = ProductModel();
fetchProduct();
}
fetchProduct() async {
productListSink.add(Response.loading('Getting Products'));
try {
Product products =
await _productModelRepository.getProductsBySeller(sellerId: 2);
productListSink.add(Response.completed(products));
} catch (e) {
productListSink.add((Response.error(e.toString())));
print(e);
}
}
dispose() {
_productListController?.close();
}
}
Вместо того, чтобы получать все продукты, я хочу добавить фильтр, чтобы я мог получать продукты на основе их categoryId
. Как это будет сделано?
Это класс ответа:
class Response<T> {
Status status;
T data;
String message;
Response.loading(this.message) : status = Status.LOADING;
Response.completed(this.data) : status = Status.COMPLETED;
Response.error(this.message) : status = Status.ERROR;
@override
String toString() {
return "Status : $status \n Message : $message \n Data : $data";
}
}
enum Status { LOADING, COMPLETED, ERROR }