def post(self, resp): post_data = request.get_json() if not post_data: response_object = {'status': 'fail', 'message': 'Invalid payload.'} return response_object, 400 user_id = int(resp['data']['id']) exercise_id = post_data.get('exercise_id') correct = post_data.get('correct') try: db.session.add( Score(user_id=user_id, exercise_id=exercise_id, correct=correct)) db.session.commit() response_object = { 'status': 'success', 'message': 'New score was added!' } return response_object, 201 except (exc.IntegrityError, ValueError): db.session().rollback() response_object = {'status': 'fail', 'message': 'Invalid payload.'} return response_object, 400
def update_scores(resp, exercise_id): """Update scores""" post_data = request.get_json() response_object = { 'status': 'fail', 'message': 'Invalid payload.' } if not post_data: return jsonify(response_object), 400 correct = post_data.get('correct') try: score = Score.query.filter_by( exercise_id=int(exercise_id), user_id=int(resp['data']['id'])).first() if score: score.correct = correct db.session.commit() response_object['status'] = 'success' response_object['message'] = 'Score was updated!' return jsonify(response_object), 200 else: db.session.add( Score(user_id=resp['data']['id'], exercise_id=int(exercise_id), correct=correct)) db.session.commit() response_object['status'] = 'success' response_object['message'] = 'New score was added!' return jsonify(response_object), 201 except (exc.IntegrityError, ValueError, TypeError) as e: db.session.rollback() return jsonify(response_object), 400
def post(self, resp): """Add score""" response_object = {'status': 'fail', 'message': 'Invalid payload.'} if not resp['admin']: response_object = { 'status': 'error', 'message': 'You do not have permission to do that.' } return response_object, 401 post_data = request.get_json() if not post_data: return response_object, 400 exercise_id = post_data.get('exercise_id') correct = False if post_data.get('correct'): correct = post_data.get('correct') try: db.session.add( Score(user_id=resp['data']['id'], exercise_id=exercise_id, correct=correct)) db.session.commit() response_object['status'] = 'success' response_object['message'] = 'New score was added!' return response_object, 201 except exc.IntegrityError: db.session.rollback() return response_object, 400 except (exc.IntegrityError, ValueError): db.session.rollback() return response_object, 400
def add_score(user_id, exercise_id, correct): score = Score( user_id=user_id, exercise_id=exercise_id, correct=correct ) db.session.add(score) db.session.commit() return score
def bowl(self): player = self.getPlayer() turn = int(Score.getLastTurn(player)) + 1 previous_turn_pins = Score.getLastScore(turn, player) # Odd turns are the first of the frame if turn % 2 !== 0 && turn !== 23: pins = random.randint(1, 10) if previous_turn_pins === 10: bonus_score = self.checkForStrikeSpare(turn, player) # Even turns are the second of the frame, along with the bonus 3rd turn on the 10th frame if turn % 2 === 0 || turn === 23: # if turn === 23: #confirm the previous two throws add up to 10 # then continue, if not, throw a message if previous_turn_pins === 10: score = 0 remaining_pins = random.randint(1, (10-previous_turn_pins)) # We have a spare, this is not handled yet if previous_turn_pins + remaining_pins === 10: score = previous_turn_pins + remaining_pins if turn > 23: # message about how they played a good game # need to update the view with the number of pins current_cummulative = Score.getCummulative(turn, player) cummulative_score = current_cummulative + score Score.updateScore(turn, player, score, cummulative_score) response_object = { 'status': 'success', 'data': { 'scores': {score} } } return jsonify(response_object), 200
def seed_db(): """Seeds the database.""" # get exercises url = '{0}/exercises'.format(os.environ.get('EXERCISES_SERVICE_URL')) response = requests.get(url) exercises = response.json()['data']['exercises'] # get users url = '{0}/users'.format(os.environ.get('USERS_SERVICE_URL')) response = requests.get(url) users = response.json()['data']['users'] # seed for user in users: for exercise in exercises: db.session.add( Score(user_id=user['id'], exercise_id=exercise['id'])) db.session.commit()
def add_scores(resp): post_data = request.get_json() response_object = {'status': 'fail', 'message': 'Invalid payload.'} if not post_data: return jsonify(response_object), 400 exercise_id = post_data.get('exercise_id') correct = post_data.get('correct') try: db.session.add( Score(user_id=resp['data']['id'], exercise_id=exercise_id, correct=correct)) db.session.commit() response_object['status'] = 'success' response_object['message'] = 'New score was added!' return jsonify(response_object), 201 except exc.IntegrityError as e: db.session.rollback() return jsonify(response_object), 400 except (exc.IntegrityError, ValueError) as e: db.session.rollback() return jsonify(response_object), 400
def put(self, resp, exercise_id): put_data = request.get_json() if not put_data: response_object = {'status': 'fail', 'message': 'Invalid payload.'} return response_object, 400 user_id = int(resp['data']['id']) correct = put_data.get('correct') try: score = Score.query.filter( Score.user_id == user_id, Score.exercise_id == exercise_id).first() if score: score.correct = correct db.session.commit() response_object = { 'status': 'success', 'message': 'Score updated' } return response_object, 200 else: db.session.add( Score(user_id=user_id, exercise_id=exercise_id, correct=correct)) db.session.commit() response_object = { 'status': 'success', 'message': 'New score was added!' } return response_object, 201 except (exc.IntegrityError, ValueError): db.session().rollback() response_object = {'status': 'fail', 'message': 'Invalid payload.'} return response_object, 400
def add_turn(turn, pins): # Add a bowling turn to our test player. score = Score(turn=turn, pins=pins, player='test') db.session.add(score) db.session.commit() return score
def test_add_score(self): score = Score(user_id=1, exercise_id=1, correct=True) db.session.add(score) db.session.commit()