async def get_all_food_categories(page: int = 1, name: str = None): """Get All food categories""" try: food_categories_query = FoodCategory.get_all(page=page, name=name) return { "info": { "page": page, "next_page": page + 1 if SETTINGS.ITEMS_PER_PAGE * page < food_categories_query.count() else None, "total": food_categories_query.count(), "items_per_page": SETTINGS.ITEMS_PER_PAGE }, "data": [ food_categories.serialize() for food_categories in food_categories_query ] } except (Exception) as err: logger.error(f"Error in get food categories - Error: {err}") return JSONResponse( status_code=400, content={"message": "Error in get food categories"})
async def get_all_foods(page: int = 1, food_category_id: str = None, name: str = None, min_price: float = None, max_price: float = None): """List food for filter""" try: filters = FoodFilterSchema(food_category_id=food_category_id, name=name, min_price=min_price, max_price=max_price) food_query = Food.get_by_filters(page=page, filters=filters) return { "info": { "page": page, "next_page": page + 1 if SETTINGS.ITEMS_PER_PAGE * page < food_query.count() else None, "total": food_query.count(), "items_per_page": SETTINGS.ITEMS_PER_PAGE }, "data": [food_categories.serialize() for food_categories in food_query] } except (Exception) as err: logger.error(f"Error in get food categories - Error: {err}") return JSONResponse( status_code=400, content={"message": "Error in get food categories"})
def get_latest_backup(server, source_directory, file_regex): session = RemoteSession(server, (secrets.USER_NAME, secrets.PASSWORD)) backups = session.ls(source_directory) version_backups = list(find_backups(file_regex, backups)) if len(version_backups) == 0: logger.error(f'No backup found matching {file_regex}') raise Exception(f'No backup found matching {file_regex}') backup_file = version_backups[-1] logger.info(f'Found backup {backup_file}') return backup_file
def raw_connect(self): connection = None try: connection = self.engine.raw_connection() yield connection except Exception as e: logger.error(f'Unable to connect to {self.server}: e') raise e finally: if connection: connection.close()
async def save_food_categories( fody_category_schema: FoodCategorySchema, current_user: User = Security(authenticate_admin_user)): """Save a new food category""" try: food_category = FoodCategory(**fody_category_schema.dict()).save() return JSONResponse(status_code=200, content=food_category.serialize()) except (Exception) as err: logger.error(f"Error in save food category - Error: {err}") return JSONResponse(status_code=400, content={"message": "Error in save food category"})
def monitor_build(current_build_version=None): current_build_version = current_build_version or latest_comps_build_version() send_message('#ht-compsbuild', f'Started Comps Build {current_build_version}') try: time.sleep(10) op_id = LON_SQL_04_SQL_RUNNER.latest_package_operation_id(BUILD_JOB_NAME) LON_SQL_04_SQL_RUNNER.monitor_package_status(op_id) logger.info(f'Comps Build {current_build_version} complete.') send_message('#ht-compsbuild', f'Comps Build {current_build_version} completed successfully!') except Exception as e: logger.error(f'Comps Build {current_build_version} failed.\n{e}') send_message('#ht-compsbuild', f'Comps Build {current_build_version} failed.\n{e}')
async def get_user_by_id(user_id: str, current_user: User = Security(authenticate_admin_user)): """Get user by id"""'' try: user = User.get_by_id(id=user_id) if not user: return JSONResponse(status_code=404, content={"message": "User do not exist!"}) return user.serialize() except (Exception) as err: logger.error(f"Error in get food - Error: {err}") return JSONResponse(status_code=400, content={"message": "Error in get user"})
async def get_food_by_id(food_id: str): """Get food for id""" try: food = Food.get_by_id(food_id) if not food: return JSONResponse(status_code=404, content={"message": "Food do not exist!"}) return food.serialize() except (Exception) as err: logger.error(f"Error in get food - Error: {err}") return JSONResponse(status_code=400, content={"message": "Error in get food"})
async def get_food_categories_by_id(food_category_id: str): """Get food category by id""" try: food_category = FoodCategory.get_by_id(id=food_category_id) if not food_category: return JSONResponse( status_code=400, content={"message": "Food category do not exists"}) return food_category.serialize() except (Exception) as err: logger.error(f"Error in get food category - Error: {err}") return JSONResponse(status_code=400, content={"message": "Error in get food category"})
async def delete_food(food_id: str, current_user: User = Security(authenticate_admin_user)): """Delete food""" try: food = Food.get_by_id(id=food_id) if not food: return JSONResponse(status_code=400, content={"message": "Food do not exists"}) food.delete() return {"message": "Food deleted!"} except (Exception) as err: logger.error(f"Error in delete food - Error: {err}") return JSONResponse(status_code=400, content={"message": "Error in delete food"})
async def save_food(food: FoodSchema, current_user: User = Security(authenticate_admin_user)): """Save new food""" try: food = food.dict() food['food_categories'] = [] for food_category_id in food.get('food_categories_id'): food['food_categories'].append( FoodCategory.get_by_id(food_category_id)) del food['food_categories_id'] return Food(**food).save().serialize() except (Exception) as err: logger.error(f"Error in save food - Error: {err}") return JSONResponse(status_code=400, content={"message": "Error in save food"})
def run_cmd(self, command): logger.info(f'running {command} against {self._server}') result = self._session.run_cmd(command) if result.std_err: logger.error(f'Error running {command} against {self._server}: {result.std_err.decode("utf-8")}') return result