user.py 3.37 KB
Newer Older
wanli's avatar
wanli committed
1 2 3 4
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import logging
import traceback
wanli's avatar
wanli committed
5
from flask import Blueprint, request
wanli's avatar
wanli committed
6 7 8 9
from app import config, signalManager
from fullstack.login import Auth
from fullstack.validation import validate_schema
from fullstack.response import ResponseCode, response_result
wanli's avatar
wanli committed
10
from schema.user import AddSchema, DeleteSchema, UpdateSchema, QuerySchema
wanli's avatar
wanli committed
11

wanli's avatar
wanli committed
12
logger = logging.getLogger(__name__)
wanli's avatar
wanli committed
13 14 15 16 17 18 19 20 21 22 23

user_api = Blueprint("user_api", __name__, url_prefix="/api/v1/%s/user" % config['NAME'])

@user_api.route("/add", methods=['POST'])
@validate_schema(AddSchema)
@Auth.auth_required
def add():
    '''
    新增用户
    '''
    try:
wanli's avatar
wanli committed
24
        isSuccess, message = signalManager.actionAddUser.emit(request.current_user.get("id"), request.schema_data)
wanli's avatar
wanli committed
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
        if isSuccess:
            return response_result(ResponseCode.OK, msg=message)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))


@user_api.route('/delete/<uuid:id>', methods=['POST'])
@validate_schema(DeleteSchema)
@Auth.auth_required
def delete(id):
    '''
    删除用户
    '''
    try:
        isSuccess, message = signalManager.actionDeleteUser.emit(id)
        if isSuccess:
            return response_result(ResponseCode.OK, msg=message)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR)


@user_api.route('/get', methods=['POST'])
@Auth.auth_required
def get():
    '''
    查找单个用户
    '''
    try:
wanli's avatar
wanli committed
60
        result, message = signalManager.actionGetUser.emit(request.current_user.get("id"))
wanli's avatar
wanli committed
61 62 63 64 65 66 67 68 69 70 71 72 73 74
        if result:
            return response_result(ResponseCode.OK, data=result, msg=message)
        else:
            if result == None:
                return response_result(ResponseCode.NO_DATA_FOUND)
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR, msg=str(e))


@user_api.route('/list', methods=['POST'])
@validate_schema(QuerySchema)
wanli's avatar
wanli committed
75
# @Auth.auth_required
wanli's avatar
wanli committed
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
def getList():
    '''
    查询用户列表
    '''
    try:
        result, count, message = signalManager.actionGetUserList.emit(request.schema_data)
        if result:
            return response_result(ResponseCode.OK, data=result, msg=message, count=count)
        else:
            return response_result(ResponseCode.REQUEST_ERROR, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR)

@user_api.route('/update/<uuid:id>', methods=['POST'])
@validate_schema(UpdateSchema)
wanli's avatar
wanli committed
93
# @Auth.auth_required
wanli's avatar
wanli committed
94 95 96 97 98 99 100 101 102 103 104 105 106 107
def update(id):
    '''
    更新用户
    '''
    try:
        result, message = signalManager.actionUpdateUser.emit(id, request.schema_data)
        if result:
            return response_result(ResponseCode.OK, data=result, msg=message)
        else:
            return response_result(ResponseCode.NOTHING_CHANGE, msg=message)
    except Exception as e:
        traceback.print_exc()
        logger.error(str(e))
        return response_result(ResponseCode.SERVER_ERROR)