def import_recipes(self): recipe_dir: Path = self.import_dir.joinpath("recipes") imports = [] successful_imports = [] for recipe in recipe_dir.glob("*.json"): with open(recipe, "r") as f: recipe_dict = json.loads(f.read()) recipe_dict = ImportDatabase._recipe_migration(recipe_dict) try: recipe_obj = Recipe(**recipe_dict) recipe_obj.save_to_db(self.session) import_status = RecipeImport(name=recipe_obj.name, slug=recipe_obj.slug, status=True) imports.append(import_status) successful_imports.append(recipe.stem) logger.info(f"Imported: {recipe.stem}") except Exception as inst: logger.error(inst) logger.info(f"Failed Import: {recipe.stem}") import_status = RecipeImport( name=recipe.stem, slug=recipe.stem, status=False, exception=str(inst), ) imports.append(import_status) self._import_images(successful_imports) return imports
def create_from_url(url: str) -> dict: recipe_data = process_recipe_url(url) with open(TEMP_FILE, "w") as f: f.write(json.dumps(recipe_data, indent=4, default=str)) recipe = Recipe(**recipe_data) return recipe.save_to_db()
def import_recipes(self): recipe_dir: Path = self.import_dir.joinpath("recipes") successful_imports = [] failed_imports = [] for recipe in recipe_dir.glob("*.json"): with open(recipe, "r") as f: recipe_dict = json.loads(f.read()) recipe_dict = ImportDatabase._recipe_migration(recipe_dict) try: recipe_obj = Recipe(**recipe_dict) recipe_obj.save_to_db() successful_imports.append(recipe.stem) logger.info(f"Imported: {recipe.stem}") except: logger.info(f"Failed Import: {recipe.stem}") failed_imports.append(recipe.stem) self._import_images(successful_imports) return {"successful": successful_imports, "failed": failed_imports}
def create_from_json( data: Recipe, db: Session = Depends(generate_session)) -> str: """ Takes in a JSON string and loads data into the database as a new entry""" new_recipe_slug = data.save_to_db(db) return new_recipe_slug
def create_from_url(url: str) -> dict: recipe_data = process_recipe_url(url) recipe = Recipe(**recipe_data) return recipe.save_to_db()
def create_from_json(data: Recipe) -> str: """ Takes in a JSON string and loads data into the database as a new entry""" created_recipe = data.save_to_db() return created_recipe