Exemplo n.º 1
0
def goals(id=None, p=None, limit=None, admin=None, **kwargs):
    db = DB_Session()
    query = db.query(MatchEvents)
    if web.ctx.method in ("POST", "PUT", "PATCH"):
        i = json.loads(web.data())
        if web.ctx.method in ("PUT", "PATCH"):
            goal = query.get(int(id))
            for name, value in i.items():
                setattr(goal, name, value)
        else:
            goal = Goals(**i)
            db.add(goal)
            db.flush()
            db.refresh(goal)
        db.commit()
        n = ResultWrapper(goal, goal=goal.to_api(admin))
    else:
        if id:
            goal = query.get(int(id))
            goal = goal.to_api(admin)
            n = ResultWrapper(goal, goal=goal)
        else:
            if kwargs.has_key("match"):
                match = kwargs["match"]
                result = engine.execute(
                    """SELECT match_events.id AS id,match_events.minute AS minute,match_events.offset AS offset,goal_events.penalty AS penalty,goal_events.owngoal AS owngoal,match_events.match_id AS match_id,match_events.player_id AS player_id,match_events.team_id AS team_id FROM `match_events` 
                    JOIN `goal_events` ON goal_events.event_id = match_events.id WHERE match_events.match_id = """
                    + match
                    + """ ORDER BY match_events.minute"""
                )
                goal = query.instances(result)
                # goal = query.join(Rounds, Matchs.round_id == Rounds.id).filter(Rounds.event_id == event,Matchs.play_at > datetime.datetime.utcnow())
            if kwargs.has_key("team"):
                team = kwargs["team"]
                match = query.filter(
                    or_(Match.team1_id == team, Match.team2_id == team), Match.play_at > datetime.datetime.utcnow()
                )
            goal = paging(goal, limit, p)
            goals = []
            for v in goal:
                goal_event = v.goal.to_api()
                event = v.to_api()
                goal_event.update(event)
                goals.append(goal_event)
            n = ResultWrapper(goal, goal=goals, count=query.count())
    db.close()
    return n
Exemplo n.º 2
0
def match_player_statistics(match=None, p=None, limit=None, admin=None, **kwargs):
    db = DB_Session()
    query = db.query(MatchPlayerStatistics)
    if web.ctx.method in ("POST", "PUT", "PATCH"):
        i = json.loads(web.data())
        if web.ctx.method in ("PUT", "PATCH"):
            goal = query.get(int(id))
            for name, value in i.items():
                setattr(goal, name, value)
        else:
            goal = Goals(**i)
            db.add(goal)
            db.flush()
            db.refresh(goal)
        db.commit()
        n = ResultWrapper(goal, goal=goal.to_api(admin))
    else:
        if match:
            player_statistics = query.filter(MatchPlayerStatistics.matchId == int(match))
            n = ResultWrapper(player_statistics, player_statistics=[v.to_api() for v in player_statistics])
    db.close()
    return n