def _marshal_team(self, team, extended=False): result = {} for k in self.team_fields: result[k] = getattr(team, k) if extended: challenges = [] for answer in team.answers: challenges.append({ 'solved': answer.timestamp, 'points': answer.challenge.points, 'name': answer.challenge.name, 'cid': answer.challenge_cid, 'cat_id': answer.challenge.category.cid, 'cat_name': answer.challenge.category.name, }) result['solved_challenges'] = challenges result['score_history'] = team.score_history else: result['solved_challenges'] = [] result['score_history'] = [] if utils.access_team(team.tid): result['players'] = list(team.players.all()) else: result['players'] = [] return result
def put(self, team_id): if not utils.access_team(team_id): raise errors.AccessDeniedError('No access to that team.') team = models.Team.query.get_or_404(team_id) data = flask.request.get_json() # Writable fields for field in ('name', 'score'): setattr(team, field, data.get(field, getattr(team, field))) models.commit() return self._marshal_team(team)
def get(self, team_id): if not utils.access_team(team_id): raise errors.AccessDeniedError('No access to that team.') team = models.Team.query.get_or_404(team_id) return self._marshal_team(team)