diff --git a/app/routers_v3/awards.py b/app/routers_v3/awards.py index a5434aa..337877f 100644 --- a/app/routers_v3/awards.py +++ b/app/routers_v3/awards.py @@ -38,7 +38,8 @@ class AwardList(pydantic.BaseModel): async def get_awards( name: list = Query(default=None), season: Optional[int] = None, timing: Optional[str] = None, manager_id: list = Query(default=None), player_id: list = Query(default=None), - team_id: list = Query(default=None), short_output: Optional[bool] = False): + team_id: list = Query(default=None), short_output: Optional[bool] = False, + player_name: list = Query(default=None)): all_awards = Award.select() if name is not None: @@ -57,6 +58,10 @@ async def get_awards( all_awards = all_awards.where(Award.player_id << player_id) if team_id is not None: all_awards = all_awards.where(Award.team_id << team_id) + if player_name is not None: + pname_list = [x.lower() for x in player_name] + all_players = Player.select().where(fn.Lower(Player.name) << pname_list) + all_awards = all_awards.where(Award.player << all_players) return_awards = { 'count': all_awards.count(), diff --git a/app/routers_v3/players.py b/app/routers_v3/players.py index abec909..55f8aef 100644 --- a/app/routers_v3/players.py +++ b/app/routers_v3/players.py @@ -87,13 +87,38 @@ async def get_players( elif sort == 'name-desc': all_players = all_players.order_by(-Player.name) - return_players = { - 'count': all_players.count(), - 'players': [model_to_dict(x, recurse=not short_output) for x in all_players] - } - db.close() if csv: - return Response(content=complex_data_to_csv(return_players['players']), media_type='text/csv') + player_list = [ + ['name', 'wara', 'image', 'image2', 'team', 'season', 'pitcher_injury', 'pos_1', 'pos_2', 'pos_3', + 'pos_4', 'pos_5', 'pos_6', 'pos_7', 'pos_8', 'last_game', 'last_game2', 'il_return', 'demotion_week', + 'headshot', 'vanity_card', 'strat_code', 'bbref_id', 'injury_rating', 'player_id'] + ] + for line in all_players: + player_list.append( + [ + line.name, line.wara, line.image, line.image2, line.team.abbrev, line.season, line.pitcher_injury, + line.pos_1, line.pos_2, line.pos_3, line.pos_4, line.pos_5, line.pos_6, line.pos_7, line.pos_8, + line.last_game, line.last_game2, line.il_return, line.demotion_week, line.headshot, + line.vanity_card, line.strat_code.replace(",", "-_-"), line.bbref_id, line.injury_rating, line.id + ] + ) + return_players = { + 'count': all_players.count(), + 'players': DataFrame(player_list).to_csv(header=False, index=False), + 'csv': True + } + + db.close() + return Response(content=return_players['players'], media_type='text/csv') + + else: + return_players = { + 'count': all_players.count(), + 'players': [model_to_dict(x, recurse=not short_output) for x in all_players] + } + db.close() + # if csv: + # return Response(content=complex_data_to_csv(return_players['players']), media_type='text/csv') return return_players