You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.8 KiB
58 lines
1.8 KiB
# -*- coding: utf-8 -*-
|
|
"""
|
|
api.user
|
|
~~~~~~~~~~~~~~
|
|
|
|
有关用户操作的接口.
|
|
|
|
:copyright: 云南新八达科技有限公司.
|
|
:author: 李进才.
|
|
"""
|
|
from utils.PageHepler import singleEntityToJson
|
|
from utils.apiDoc import *
|
|
|
|
|
|
# 接口路由
|
|
@user.route('/login')
|
|
class IndexApi(Resource):
|
|
# @api.marshal_with(return_model,code=200)
|
|
# @api.expect(return_model)
|
|
@staticmethod
|
|
def post():
|
|
"""
|
|
user login
|
|
:return: user info token
|
|
"""
|
|
data = request.json
|
|
userInfo = DictUser.query.filter_by(UserCode=data['username'], PassWord=data['password']).first()
|
|
if userInfo is None:
|
|
return SuccessResponse(ResultCode.USER_LOGIN_ERROR, None, None)
|
|
return SuccessResponse(ResultCode.SUCCESS, None,
|
|
generate_jwt_long({'UserName': userInfo.UserName}))
|
|
|
|
|
|
@user.route('/info')
|
|
class UserInfo(Resource):
|
|
@staticmethod
|
|
def post():
|
|
"""
|
|
get user info
|
|
:return: user info
|
|
"""
|
|
token = request.headers.get('X-Token')
|
|
userInfo = DictUser.query.filter_by(UserName=verify_jwt_username(token)).first()
|
|
if userInfo is None:
|
|
return BadResponse(ResultCode.INVALID_TOKEN, None, None)
|
|
return SuccessResponse(ResultCode.SUCCESS, singleEntityToJson(userInfo),
|
|
None)
|
|
|
|
|
|
@user.route('/code')
|
|
class UserCode(Resource):
|
|
@staticmethod
|
|
def post():
|
|
data = request.json
|
|
user_info = DictUser.query.filter_by(UserCode=data['userCode']).first()
|
|
if user_info is None:
|
|
return BadResponse(ResultCode.USER_NOT_EXIST, None, None)
|
|
return SuccessResponse(ResultCode.SUCCESS, {'userName': user_info.UserName}, None)
|
|
|