integrate barcode scan with openfoodfacts and meal type selection
This commit is contained in:
1 parent
3c3dfb6cd6
commit
ca64a100b6
5 files changed
+890
-428
No files matched your search
@@ -0,0 +1,35 @@
|
||||
import { apiClient, withAuth } from "./client";
|
||||
import { API_ENDPOINTS } from "../config/api";
|
||||
|
||||
export interface ScannedFoodProduct {
|
||||
barcode: string;
|
||||
name: string;
|
||||
brand: string | null;
|
||||
imageUrl: string | null;
|
||||
servingSize: string;
|
||||
caloriesPerServing: number;
|
||||
macros: {
|
||||
protein: number | null;
|
||||
carbs: number | null;
|
||||
fat: number | null;
|
||||
};
|
||||
source: "openfoodfacts";
|
||||
}
|
||||
|
||||
interface FoodLookupResponse {
|
||||
success: boolean;
|
||||
data: ScannedFoodProduct;
|
||||
}
|
||||
|
||||
export async function lookupFoodByBarcode(
|
||||
barcode: string,
|
||||
token: string | null,
|
||||
): Promise<ScannedFoodProduct> {
|
||||
const normalized = barcode.replace(/\D/g, "");
|
||||
const response = await apiClient.get<FoodLookupResponse>(
|
||||
API_ENDPOINTS.FOOD.LOOKUP_BARCODE(normalized),
|
||||
withAuth(token),
|
||||
);
|
||||
|
||||
return response.data.data;
|
||||
}
|
||||
Reference in new issue
Block a user