Example #1
0
    def put(self, region):
        dao = Dao(region, mongo_client=mongo_client)
        args = rankings_criteria_get_parser.parse_args()

        try:
            ranking_num_tourneys_attended = int(args['ranking_num_tourneys_attended'])
            ranking_activity_day_limit = int(args['ranking_activity_day_limit'])
            tournament_qualified_day_limit = int(args['tournament_qualified_day_limit'])
        except Exception as e:
            return 'Error parsing Ranking Criteria, please try again: ' + str(e), 400

        print ranking_num_tourneys_attended
        print ranking_activity_day_limit

        if not dao:
            return 'Dao not found', 404
        user = get_user_from_request(request, dao)
        if not user:
            return 'Permission denied', 403
        if not is_user_admin_for_region(user, region):
            return 'Permission denied', 403

        try:
            # TODO Update rankings and store criteria in db
            dao.update_region_ranking_criteria(region,
                                               ranking_num_tourneys_attended=ranking_num_tourneys_attended,
                                               ranking_activity_day_limit=ranking_activity_day_limit,
                                               tournament_qualified_day_limit=tournament_qualified_day_limit)
        except Exception as e:
            print str(e)
            return 'There was an error updating the region rankings criteria', 400

        return dao.get_region_ranking_criteria(region)
Example #2
0
    def post(self, region):
        dao = Dao(region, mongo_client=mongo_client)
        args = rankings_criteria_get_parser.parse_args()

        if not dao:
            return 'Dao not found', 404
        user = get_user_from_request(request, dao)
        if not user:
            return 'Permission denied', 403
        if not is_user_admin_for_region(user, region):
            return 'Permission denied', 403

        # we pass in now so we can mock it out in tests
        now = datetime.now()

        try:
            try:
                ranking_num_tourneys_attended = int(args['ranking_num_tourneys_attended'])
                ranking_activity_day_limit = int(args['ranking_activity_day_limit'])
                tournament_qualified_day_limit = int(args['tournament_qualified_day_limit'])
                tournament_id_to_diff = ObjectId(args['tournament_id_to_diff'])

                #TODO Get stored rankings from the db
                dao.update_region_ranking_criteria(region.lower(),
                                                   ranking_num_tourneys_attended=ranking_num_tourneys_attended,
                                                   ranking_activity_day_limit=ranking_activity_day_limit,
                                                   tournament_qualified_day_limit=tournament_qualified_day_limit)
                print 'Running rankings. day_limit: ' + str(ranking_activity_day_limit) + ' and num_tourneys: ' \
                      + str(ranking_num_tourneys_attended) + ' and tournament_qualified_day_limit: ' + str(tournament_qualified_day_limit)

                tournament_to_diff = dao.get_tournament_by_id(tournament_id_to_diff)

                rankings.generate_ranking(dao, now=now,
                                          day_limit=ranking_activity_day_limit,
                                          num_tourneys=ranking_num_tourneys_attended,
                                          tournament_qualified_day_limit=tournament_qualified_day_limit,
                                          tournament_to_diff=tournament_to_diff)
            except:
                rankings.generate_ranking(dao, now=now)
        except Exception as e:
            print str(e)
            return 'There was an error updating rankings', 400

        return self.get(region)