fix(profil): update user ID retrieval and improve fetch request error handling
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
| Teknisk skuld — oanvända InventoryItem-fält | ✅ Klart (migration 20260418) |
|
||||
| Teknisk skuld — redirect-routes städade | ✅ Klart |
|
||||
| Avancerad AI-integration (veckoplanering, kampanjdata) | ❌ Planerad |
|
||||
| EAN-skanning via Open Food Facts API | ❌ Planerad |
|
||||
|
||||
---
|
||||
|
||||
@@ -130,3 +131,35 @@ Jest + ts-jest är uppsatt. Tester finns för:
|
||||
- `recipes.service.ts` (`normalizeUnit`, `convertUnit`) — 17 tester
|
||||
|
||||
Kör med `npm test` i `backend/`.
|
||||
|
||||
---
|
||||
|
||||
## Planerade funktioner
|
||||
|
||||
### EAN-skanning — import via streckkod (Open Food Facts)
|
||||
**Mål:** Låt användaren skanna eller skriva in en EAN-streckkod och få produktinformation (namn, kategori, näringsvärden) ifyllt automatiskt.
|
||||
|
||||
Open Food Facts är ett öppet, gratis API utan API-nyckel för grundläggande användning.
|
||||
|
||||
**Exempelanrop (EAN 7310960010016):**
|
||||
```
|
||||
GET https://world.openfoodfacts.org/api/v0/product/{ean}.json
|
||||
```
|
||||
Svaret innehåller:
|
||||
- `product.product_name` — produktnamn
|
||||
- `product.categories` — kategoristräng (kommaseparerad)
|
||||
- `product.nutriments` — näringsvärden (energi, protein, fett, kolhydrater, m.fl.)
|
||||
- `product.code` — EAN-koden bekräftad
|
||||
|
||||
**Förslag på implementation:**
|
||||
|
||||
1. **Backend-endpoint** — `GET /api/products/ean/:code` — slår upp i Open Food Facts, returnerar normaliserat produktförslag (namn, kategori, näringsvärden) utan att spara
|
||||
2. **Frontend-import** — nytt fält i produktformuläret (eller separat import-flöde): ange EAN → knapp "Hämta" → formuläret förifylls
|
||||
3. **Alternativt:** kamerabaserad skanning i mobil webbläsare via `BarcodeDetector` API (eller externt bibliotek som `zxing-js`)
|
||||
4. **Kategorimappning** — Open Food Facts-kategorier är på engelska/franska; en mappningstabell eller fuzzy-matchning mot systemets kategorier behövs
|
||||
5. **Näringsdata** — om `product.nutriments` finns kan det sparas direkt i Prisma-modellens näringsvärdesfält (redan schema-klara)
|
||||
|
||||
**Begränsningar att ha i åtanke:**
|
||||
- Produkttäckning varierar — svenska dagligvaror är välrepresenterade men inte allt finns
|
||||
- Produktnamn är ofta på originalspråk; kan behöva redigeras
|
||||
- Rate limiting: för hög användning rekommenderar Open Food Facts att kontakta dem
|
||||
|
||||
Reference in New Issue
Block a user