Beispiel #1
0
    def post(self):
        """Enroll a new user"""
        req_data = request.get_json()
        try:
            validated = validate_user(req_data)
            user_data = validated['data']
            exist_user = [item for item in User.email_index.query(user_data['email'])]
            if not exist_user:
                new_user_id = uuid.uuid4().hex
                solution_put_new_user(new_user_id, user_data)

                user = {
                    'id': new_user_id,
                    'username': user_data['username'],
                    'email': user_data['email']
                }

                app.logger.debug('success:user_signup: {0}'.format(user))
                return make_response({'ok': True, 'users': user}, 201)
            else:
                app.logger.error('ERROR: Existed user: {0}'.format(user_data))
                raise Conflict('ERROR: Existed user!')
        except ValidationError as e:
            app.logger.error('ERROR: {0}\n{1}'.format(e.message, req_data))
            raise BadRequest(e.message)
        except PynamoDBException as e:
            app.logger.error('ERROR: {0}\n{1}'.format(e.msg, req_data))
            raise InternalServerError(e.msg)
Beispiel #2
0
    def post(self):
        """Enroll a new user"""
        req_data = request.get_json()
        try:
            validated = validate_user(req_data)
            user_data = validated['data']

            exist_user = None
            email = user_data['email']

            for item in User.email_index.query(email):
                exist_user = item

            if not exist_user:
                new_user_id = uuid.uuid4().hex

                # TODO 1 : Implement following solution code to save user information into DynamoDB
                solution_put_new_user(new_user_id, user_data)

                user = {
                    "id": new_user_id,
                    'username': user_data['username'],
                    'email': email
                }

                app.logger.debug('success:user_signup: {0}'.format(user))
                return m_response(user, 201)

            else:
                app.logger.error('ERROR:exist user: {0}'.format(user_data))
                return err_response('exist user', 409)
        except ValidationError as e:
            app.logger.error(
                'ERROR:invalid signup data format:{0}'.format(req_data))
            app.logger.error(e)
            return err_response(e.message, 400)
        except Exception as e:
            app.logger.error(
                'ERROR:unexpected signup error:{}'.format(req_data))
            app.logger.error(e)
            return err_response(e, 500)