@@ -290,4 +290,36 @@ def _sync_ingredients(language_id: Optional[int] = None):
290290 else :
291291 _sync_ingredients ()
292292
293+ url = make_uri (INGREDIENTS_ENDPOINT , server_url = remote_url , query = {'limit' : API_MAX_ITEMS })
294+ for data in get_paginated (url , headers = wger_headers ()):
295+ uuid = data ['uuid' ]
296+ name = data ['name' ]
297+
298+ ingredient , created = Ingredient .objects .update_or_create (
299+ uuid = uuid ,
300+ defaults = {
301+ 'name' : name ,
302+ 'code' : data ['code' ],
303+ 'language_id' : data ['language' ],
304+ 'created' : data ['created' ],
305+ 'license_id' : data ['license' ],
306+ 'license_object_url' : data ['license_object_url' ],
307+ 'license_author' : data ['license_author_url' ],
308+ 'license_author_url' : data ['license_author_url' ],
309+ 'license_title' : data ['license_title' ],
310+ 'license_derivative_source_url' : data ['license_derivative_source_url' ],
311+ 'energy' : data ['energy' ],
312+ 'carbohydrates' : data ['carbohydrates' ],
313+ 'carbohydrates_sugar' : data ['carbohydrates_sugar' ],
314+ 'fat' : data ['fat' ],
315+ 'fat_saturated' : data ['fat_saturated' ],
316+ 'protein' : data ['protein' ],
317+ 'fiber' : data ['fiber' ],
318+ 'sodium' : data ['sodium' ],
319+ },
320+ )
321+
322+ print_fn (f'{ "created" if created else "updated" } ingredient { uuid } - { name } ' )
323+
324+
293325 print_fn (style_fn ('done!\n ' ))
0 commit comments