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)
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})
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})
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()