Esempio n. 1
0
    def post(self):
        deserialized = request.get_json().copy()

        errors = {}
        if not user_validator.is_valid(deserialized):
            errors.update(handle_validation_errors(
                        user_validator.iter_errors(deserialized)))

        if deserialized.get('password', None) != \
           deserialized.get('confirmPassword', None):
            errors['confirmPassword'] = '******'
        if deserialized.get('email', None) != \
           deserialized.get('confirmEmail', None):
            errors['confirmEmail'] = 'Must match email'

        if User.exists_by_username(deserialized.get('username', '')):
            errors['username'] = '******'
        if User.exists_by_email(deserialized.get('email', '')):
            errors['email'] = 'Email is already registered'

        if errors != {}:
            return dumps(errors), 400

        deserialized['password'] = bcrypt.generate_password_hash(
            deserialized['password'])

        del deserialized['confirmPassword']
        del deserialized['confirmEmail']
        user = User.create(deserialized)

        mail.send_message(subject='Thanks For Registering!',
                          recipients=[deserialized['email']],
                          body=render_template('registration_email.html'))

        return dumps(user.serialized)
Esempio n. 2
0
    def post(self):
        deserialized = request.get_json()

        if not game_validator.is_valid(deserialized):
            errors = handle_validation_errors(
                game_validator.iter_errors(deserialized))
            return dumps(errors), 400
        else:
            errors = {}
            for player in ['x_player_id', 'o_player_id']:
                if not User.exists_by_id(deserialized[player]):
                    errors[player] = 'Player does not exist'
            if errors != {}:
                return dumps(errors), 400

        game = Game.create(deserialized)

        return dumps(game.serialized)
Esempio n. 3
0
    def post(self):
        deserialized = request.get_json()

        if not game_validator.is_valid(deserialized):
            errors = handle_validation_errors(
                        game_validator.iter_errors(deserialized))
            return dumps(errors), 400
        else:
            errors = {}
            for player in ['x_player_id', 'o_player_id']:
                if not User.exists_by_id(deserialized[player]):
                    errors[player] = 'Player does not exist'
            if errors != {}:
                return dumps(errors), 400

        game = Game.create(deserialized)

        return dumps(game.serialized)
Esempio n. 4
0
    def post(self):
        deserialized = request.get_json()

        if not turn_validator.is_valid(deserialized):
            errors = handle_validation_errors(
                        turn_validator.iter_errors(deserialized))
            return dumps(errors), 400

        position_occupied = Turn.query.filter(
                          Turn.position == deserialized['position'],
                          Turn.game_id == deserialized['game_id']).count() > 0
        if position_occupied:
            return "{} occupied".format(deserialized['position']), 400

        game = Game.query.get_or_404(deserialized['game_id'])
        deserialized['turn_number'] = len(game.game_turns) + 1

        turn = Turn(**deserialized)
        db.session.add(turn)
        db.session.commit()

        return dumps(turn.serialize)
Esempio n. 5
0
    def post(self):
        deserialized = request.get_json().copy()

        errors = {}
        if not user_validator.is_valid(deserialized):
            errors.update(
                handle_validation_errors(
                    user_validator.iter_errors(deserialized)))

        if deserialized.get('password', None) != \
           deserialized.get('confirmPassword', None):
            errors['confirmPassword'] = '******'
        if deserialized.get('email', None) != \
           deserialized.get('confirmEmail', None):
            errors['confirmEmail'] = 'Must match email'

        if User.exists_by_username(deserialized.get('username', '')):
            errors['username'] = '******'
        if User.exists_by_email(deserialized.get('email', '')):
            errors['email'] = 'Email is already registered'

        if errors != {}:
            return dumps(errors), 400

        deserialized['password'] = bcrypt.generate_password_hash(
            deserialized['password'])

        del deserialized['confirmPassword']
        del deserialized['confirmEmail']
        user = User.create(deserialized)

        mail.send_message(subject='Thanks For Registering!',
                          recipients=[deserialized['email']],
                          body=render_template('registration_email.html'))

        return dumps(user.serialized)