fooder-app/lib/client/product.dart

42 lines
1.1 KiB
Dart
Raw Normal View History

import 'package:fooder/client/based.dart';
import 'package:fooder/models/product.dart';
class ProductClient extends BasedClient {
const ProductClient({required super.apiClient});
Future<List<Product>> list(String q) async {
var response =
await apiClient.get("/product?${Uri(queryParameters: {"q": q}).query}");
return (response['products'] as List<dynamic>)
.map((e) => Product.fromJson(e as Map<String, dynamic>))
.toList();
}
Future<Product> getByBarcode(String barcode) async {
var response = await apiClient.get(
"/product/by_barcode?${Uri(queryParameters: {
"barcode": barcode
}).query}");
return Product.fromJson(response);
}
Future<Product> create({
required String name,
required double protein,
required double carb,
required double fat,
required double fiber,
}) async {
var response = await apiClient.post("/product", {
"name": name,
"protein": protein,
"carb": carb,
"fat": fat,
"fiber": fiber,
});
return Product.fromJson(response);
}
}