Пример #1
0
def battles():
    if request.method == 'GET':
        try:
            query = json.loads(request.args.get("query", "{}"))
            sort = json.loads(request.args.get("sort", "[]"))
            start = json.loads(request.args.get('start',
                                                "{'start': 0}"))['start']
            limit = json.loads(request.args.get('limit',
                                                "{'limit': 30}"))['limit']
        except:
            return failure("request syntax error! need json string!")

        if "username" in query and not username_checker(db, query['username']):
            return failure("user not exist")

        mongo_query = filter_condition_generate(query)
        if isinstance(query, str):
            return failure(query)

        mongo_sort = sort_condition_generate(sort)
        if isinstance(sort, str):
            return failure(sort)

        current_user.update_perference("condition", {
            "query": query,
            "sort": sort
        })

        return success({
            "start":
            start,
            "battle_list":
            history_clear(
                db.battles.find(filter=mongo_query,
                                sort=mongo_sort)[start:start + limit])
        })

    elif request.method == 'POST':
        if current_user.user_id == -1:
            return failure("need login first!")

        request_json = request.get_json(force=True)
        check_res = field_checker(
            request_json,
            ['battle_name', 'accuracy_time', 'additional_time', 'board_type'])
        if check_res is not None:
            return failure(check_res)

        battle = BattleFactory.create_battle(current_time(), request_json,
                                             request_json['board_type'], db)

        if isinstance(battle, str):
            return failure(battle)

        current_user.update_perference("create", request_json)

        return success({"id": battle.id})
Пример #2
0
def battles():
    if request.method == 'GET':
        #need config (condition, sort)
        return jsonify(id_clear(db.battles.find()))
    elif request.method == 'POST':
        request_json = request.get_json(force=True)
        succ, battle = BattleFactory.create_battle(int(time.time()),
                                                   request_json['battle_info'],
                                                   request_json['board_type'],
                                                   db)
        if not succ:
            return jsonify({"message": battle})
        return jsonify({"id": battle.id})