Ejemplo n.º 1
0
def respond():
    ''' receives a reply from twilio '''
    sms = request.values.to_dict()
    phone = sms['From'].replace('+', '')

    try:
        player = models.find_player(phone)
    except NoResultFound:
        # contact from an unknown number
        player = models.add_player(None, phone)

        turn_data = {'text': ['Pardon me, but what name do you go by?'], 'uid': None}
        player.set_pending_turn(turn_data)
        return success(player.pending_turn)
    else:
        player.set_show(True)

        # TODO: this is maybe the wrong way to get this
        previous_turn = player.pending_turn

        turn = GAME.process_response(previous_turn, sms['Body'], player.name)
        player.set_pending_turn(turn)

        models.add_message(player, {'text': sms['Body']}, sms, incoming=True)

        return success(turn)
Ejemplo n.º 2
0
def player_drop():
    if not request.json or not 'player' in request.json:
        abort(400)
    picker=get_current_user()
    player=request.json.get('player')
    success=models.drop_player(picker,player)
    if success:
        picks=models.add_player('Available',player)
        memcache.delete('picks')
        message="Dropped "+player
    else:
        message="Unable to drop "+player    
    return jsonify({'success':success,'message':message})
Ejemplo n.º 3
0
def player_add():
    if not request.json or not 'player' in request.json:
        abort(400)
    picker=get_current_user()
    player=json.loads(request.data).get('player')
    success=models.drop_player('Available',player)
    if success:
        picks=models.add_player(picker,player)
        memcache.delete('picks')
        message="Added "+player
    else:
        message=player+ " is no longer available"
    return jsonify({'success':success,'message':message})
Ejemplo n.º 4
0
def add_player():
    ''' create a new entry in the player table '''
    data = request.get_json()
    try:
        player = models.add_player(data['name'], data['phone'])
    except KeyError:
        return failure('name or phone number not found')
    except AssertionError:
        return failure('invalid data')

    turn = GAME.start(player.name)
    player.set_pending_turn(turn)
    return success()