def post(self): parser = reqparse.RequestParser() parser.add_argument('country_code', type=str, default='', location='json') parser.add_argument('mobile', type=str, required=True, nullable=False, location='json') parser.add_argument('password', type=str, required=True, nullable=False, location='json') parser.add_argument('security_password', type=str, required=True, nullable=False, location='json') parser.add_argument('source', type=str, default='', location='json') parser.add_argument('sponsor', type=str, required=True, nullable=False, location='json') parsed_args = parser.parse_args() sponsor = User.query.filter( User.mobile == parsed_args['sponsor']).first() if sponsor is None: abort(400, code=1001, message={'sponsor': 'sponsor does not exist'}) if User.query.filter(User.mobile == parsed_args['mobile']).first(): abort(400, code=1011, message={'uid': 'uid already exists'}) user = User(id=str(uuid.uuid4()), country_code=parsed_args['country_code'], mobile=parsed_args['mobile'], source=parsed_args['source'], sponsor_id=sponsor.id) user.set_password(parsed_args['password']) user.set_security_password(parsed_args['security_password']) user.generate_auth_token() db.session.add(user) db.session.flush() user.set_uid() user.update_state(g_user_state_type.EVALUATION) user.activate() db.session.commit() return user
def post(self): parser = CustomRequestParser() parser.add_argument('country_code', type=str, default='86', location='json') parser.add_argument('mobile', type=str, required=True, nullable=False, location='json') parser.add_argument('password', type=str, required=True, nullable=False, location='json') parser.add_argument('security_password', type=str, required=True, nullable=False, location='json') # parser.add_argument('pin_code', type=str, required=True, nullable=False, location='json') parser.add_argument('source', type=str, default='', location='json') parser.add_argument('sponsor_uid', type=str, required=True, nullable=False, location='json') # parser.add_argument('uuid', type=str, required=True, nullable=False, location='json') # parser.add_argument('captcha_pin_code', type=str, required=True, nullable=False, location='json') parsed_args = parser.parse_args() # CaptchaPinCode.flask_check(parsed_args['uuid'], parsed_args['captcha_pin_code']) sponsor = User.query.filter( User.uid == parsed_args['sponsor_uid']).first() if not sponsor: abort(400, code=1001, message={'sponsor': 'sponsor does not exist'}) # 测试环境,不验证手机验证码 # product_name = str(current_app.config['PRODUCT_NAME']) # country_code = parsed_args['country_code'] # if parsed_args['country_code']: # if "+" in parsed_args['country_code']: # country_code = parsed_args['country_code'][1:] if member_user_mobile_exists(parsed_args['mobile']): abort(400, code=1011, message={'mobile': 'mobile already exists'}) # SmsPinCode.flask_check(parsed_args['mobile'], parsed_args['pin_code']) user = User( id=str(uuid.uuid4()), # country_code=country_code, mobile=parsed_args['mobile'], source=parsed_args['source'], sponsor_id=sponsor.id) # user.set_uid() # 项目要求完善资料后生成 user.set_password(parsed_args['password']) user.set_security_password(parsed_args['security_password']) user.generate_auth_token() db.session.add(user) db.session.flush() user.activate() db.session.commit() cookie = dump_cookie(key='token', value=user.token, max_age=datetime.timedelta(days=365)) return user, {'Set-Cookie': cookie}