@feedback.get("/feedbacks-date") async def get_feedbacks_count(date: str, team_name: str, db: Session = Depends(get_db)): try: disable_six_rule=( select([TeamMaster.disable_six_rule]) .where(TeamMaster.team_name == team_name) ) disable_rule_result=db.execute(disable_six_rule).fetchone() if not disable_rule_result or not disable_rule_result["disable_six_rule"]: q = ( select([func.count().label("count")]) .where(Meta.feedback_date == date) .where(Meta.team_name == team_name) .group_by(Meta.feedback_date) .having(func.count(Meta.feedback_response_value) >= 6) ) count_result = db.execute(q).fetchone() if not count_result or count_result["count"] < 6: logger.log_info("Less than 6 Response") return "Less than 6 Response" else: result = ( select([func.coalesce(Meta.feedback_response_value, 5).label("feedback_response_value"), func.count().label("count")]) .where(Meta.feedback_date == date) .where(Meta.team_name == team_name) .group_by(Meta.feedback_response_value) ) rows = db.execute(result).fetchall() formatted_result = {str(row[0]): row[1] for row in rows} return formatted_result except SQLAlchemyError as e: logger.log_exception(e) raise HTTPException(status_code=500, detail=str(e))