Exemplo n.º 1
0
def check_answer(androidId, huntID, step_num):
    data = request.get_json()
    response = database.get_hunt(huntID)
    if not response:
        return bad_request_response(message="Failed! Hunt not found")
    right_answer = (response["Item"].get("tasks",
                                         None))[step_num].get("answer")
    numClue = len(response["Item"]["clues"])
    playerData = database.get_player(androidId)["Item"]
    user_answer = data["answer"]
    for letter in WORDS_REMOVED:
        right_answer = (right_answer.lower()).replace(letter, "")
        user_answer = (user_answer.lower()).replace(letter, "")
    right_answer = right_answer.replace(" ", "")
    user_answer = user_answer.replace(" ", "")
    if user_answer == right_answer:
        for hunt in playerData["started_hunts"]:
            if hunt["huntID"] == huntID and step_num == (numClue - 1):
                database.moveHunt(androidId, huntID)
                response = database.updateReward(androidId, huntID)
                return jsonify({
                    "code": 200,
                    "message": "Success",
                    "data": response
                })
        response = database.update_playerHunt(androidId, huntID,
                                              (step_num + 1))
        return jsonify({"code": 200, "message": "Success", "data": response})
    return bad_request_response(message="Incorrect answer")
Exemplo n.º 2
0
def use_offer(androidId, offerId):
    # data = request.get_json()
    playerData = (database.get_player(androidId))["Item"]
    offerData = (database.get_offer(offerId))["Item"]
    if playerData["coins"] >= offerData["coins"]:
        response = database.use_offer(androidId, offerId)
        if not response:
            return bad_request_response(message="Failed! Player not found")
        return jsonify({"code": 200, "message": "Success", "data": response})
    return bad_request_response(message="Not Enough Coins to Buy")
def get_task(huntID, step_num):
    hexID = request.args.get("instanceID")
    instanceID = int(hexID, 16)
    response = database.get_hunt(huntID)
    if not response:
        return bad_request_response(message="Failed! Hunt not found")
    tasks = response["Item"].get("tasks", None)
    task = tasks[step_num]
    if task.get("instanceID", None) == instanceID:
        return jsonify({
            "code": 200,
            "message": "Success",
            "data": task.get("question", None)
        })
    return bad_request_response(message="Wrong Location")
Exemplo n.º 4
0
def get_assets(androidId):
    # data = request.get_json()
    playerData = (database.get_player(androidId))["Item"]
    response = playerData["assets"]
    if response is None:
        return bad_request_response(message="Failed! Hunt not found")
    return jsonify({"code": 200, "message": "Success", "data": response})
def create_offer():
    data = request.get_json()
    if data.get("coins", None) is not None:
        response = database.create_offer(data)
    if not response:
        return bad_request_response(message="Failed! Offer was not created")
    return jsonify({"code": 200, "message": "Success", "data": response})
Exemplo n.º 6
0
def add_beacon():
    data = request.get_json()
    if data.get("beacon_uuid", None) is not None:
        response = database.new_beacon(data)
    if not response:
        return bad_request_response(message="Failed! Beacon was not added")
    return jsonify({"code": 200, "message": "Success", "data": response})
def add_hunt():
    data = request.get_json()
    if data.get("name", None) is not None:
        response = database.create_hunt(data)
    if not response:
        return bad_request_response(message="Failed! Hunt was not created")
    return jsonify({"code": 200, "message": "Success", "data": response})
def nearby_hunt(androidID):
    latitude = str(request.args.get("latitude"))
    longitude = str(request.args.get("longitude"))
    radius = float(request.args.get("radius"))
    response = database.get_allHunt()
    print(response)
    player = (database.get_player(androidID)).get("Item", None)
    data = []
    if not response:
        return bad_request_response(message="Failed! Hunt not found")
    for item in response:
        distance = find_distance(
            latitude,
            longitude,
            str(item.get("start_lati", None)),
            str(item.get("start_long", None)),
        )
        if radius >= distance:
            have_started = False
            if (player.get("started_hunts")) is not None:
                for hunt in player.get("started_hunts"):
                    if hunt["huntID"] == item["huntID"]:
                        have_started = True
                        break
            if (player.get("completed_hunts")) is not None:
                for hunt in player.get("completed_hunts"):
                    if hunt["huntID"] == item["huntID"]:
                        have_started = True
                        break
            if not have_started:
                data.append(item)

    return jsonify({"code": 200, "message": "Success", "data": data})
def get_hint(huntID, step_num):
    response = database.get_hunt(huntID)
    if not response:
        return bad_request_response(message="Failed! Hunt not found")
    hints = response["Item"].get("hints", None)
    hint = hints[step_num]
    return jsonify({"code": 200, "message": "Success", "data": hint})
Exemplo n.º 10
0
def register_user():
    data = request.get_json()
    database = DB()
    if data.get("name", None) is not None and data.get("email", None) is not None:
        response = database.create_users(data)
    if not response:
        return bad_request_response(message="Failed! User was not created")
    return jsonify({"code": 200, "message": "Success", "data": response})
Exemplo n.º 11
0
def start_hunt(androidID, huntID):
    # data = request.get_json()
    response = database.get_hunt(huntID)
    if not response:
        return bad_request_response(message="Failed! Hunt not found")
    player = (database.get_player(androidID)).get("Item", None)
    have_started = False
    if (player.get("started_hunts")) is not None:
        for hunt in player["started_hunts"]:
            if hunt["huntID"] == huntID:
                have_started = True
                break
    if not have_started:
        return_data = database.startHunt(androidID, huntID)
    if not return_data:
        return bad_request_response(message="Failed! Hunt not updated")
    return jsonify({"code": 200, "message": "Success", "data": return_data})
Exemplo n.º 12
0
def get_hunt(huntID):
    response = database.get_hunt(huntID)
    if not response:
        return bad_request_response(message="Failed! Hunt not found")
    return jsonify({
        "code": 200,
        "message": "Success",
        "data": response["Item"]
    })
Exemplo n.º 13
0
def check_star(androidId, huntID):
    # data = request.get_json()
    playerData = (database.get_player(androidId))["Item"]
    for hunt in playerData["started_hunts"]:
        if huntID == hunt["huntID"]:
            response = hunt["hasUsedStar"]
            if response is None:
                return bad_request_response(message="Failed! Hunt not found")
    return jsonify({"code": 200, "message": "Success", "data": response})
Exemplo n.º 14
0
def get_allassets():
    response = database.get_assets()
    if not response:
        return bad_request_response(message="Failed! Assets not found")
    return jsonify({
        "code": 200,
        "message": "Success",
        "data": response["Items"]
    })
Exemplo n.º 15
0
def use_star(androidId, huntID):
    # data = request.get_json()
    playerData = (database.get_player(androidId))["Item"]
    if playerData["stars"] > 0:
        for hunt in playerData["started_hunts"]:
            if huntID == hunt["huntID"] and hunt["hasUsedStar"]:
                stars = playerData["stars"] - 1
                response = database.update_star(huntID, playerData, stars,
                                                (hunt["current_clue"] + 1))
                if not response:
                    return bad_request_response(
                        message="Failed! Hunt not found")
                return jsonify({
                    "code": 200,
                    "message": "Success",
                    "data": response
                })
        return bad_request_response(message="Has used star for this Hunt")
    return bad_request_response(message="Not Enough Stars")
Exemplo n.º 16
0
def get_completed_hunt(androidId):
    response = database.get_player(androidId)
    if not response:
        return bad_request_response(message="Failed! Hunt not found")
    reply = []
    for hunt in response["Item"].get("completed_hunts", None):
        hunt_info = database.get_hunt(hunt["huntID"])
        reply_data = {"completed_hunt": hunt, "hunt_info": hunt_info["Item"]}
        reply.append(reply_data)
    return jsonify({"code": 200, "message": "Success", "data": reply})
Exemplo n.º 17
0
def register_player():
    data = request.get_json()
    if data.get("androidId", None) is not None:
        playerData = database.get_player(data.get("androidId", None))
        if playerData.get("Item", None) is None:
            response = database.create_player(data)
            try:
                """Create HF account"""
                PARAMS = {"username": data.get("androidId", None)}
                r = requests.post(url=fabric_server + "/users",
                                  json=PARAMS,
                                  headers=HEADER)
                content = r.json()
            except socket.timeout:
                return bad_request_response(
                    message="Failed! Problem in creating fabric account")
            if not response:
                return bad_request_response(
                    message="Failed! User was not created")
    return jsonify({"code": 200, "message": "Success", "data": content})
Exemplo n.º 18
0
def use_hint(androidId, huntID, step_num):
    # data = request.get_json()
    playerData = (database.get_player(androidId))["Item"]
    response = database.get_hunt(huntID)
    if not response:
        return bad_request_response(message="Failed! Hunt not found")
    hint = None
    if playerData["gems"] >= 10:
        hints = response["Item"].get("hints", None)
        hint = hints[step_num]
        response = database.update_gems(playerData)
    return jsonify({"code": 200, "message": "Success", "data": hint})
Exemplo n.º 19
0
def update_rating(huntID):
    data = request.get_json()
    hunt_data = (database.get_hunt(huntID))["Item"]
    # Add the user rating to previous and divide with total users
    user_rating = data.get("user_rating", None)
    previous_user_rating = hunt_data.get("user_rating", None) * hunt_data.get(
        "num_raters", None)
    num_raters = hunt_data.get("num_raters", None) + 1
    new_user_rating = (user_rating + previous_user_rating) / (num_raters)
    update_data = {"user_rating": new_user_rating, "num_raters": num_raters}

    return_data = database.update_huntRating(huntID, update_data)

    if not return_data:
        return bad_request_response(message="Failed! Hunt not updated")
    return jsonify({"code": 200, "message": "Success", "data": return_data})