user_create.py 2.2 KB
# coding=utf-8
#author:        qianyingz
#createtime:    2021/8/13
#email:         qianyingz@chinadci.com

from .models import *
from app.util.component.ApiTemplate import ApiTemplate


class Api(ApiTemplate):
    api_name = "创建用户"

    def para_check(self):
        if not self.para.get("username"):
            raise Exception("username is null")
        if not self.para.get("password"):
            raise Exception("password is null")
        if not self.para.get("role"):
            raise Exception("role is null")

    def process(self):

        # 返回结果
        res = {}
        res["result"] = False
        try:
            # 业务逻辑
            username = self.para.get("username")
            password = self.para.get("password")
            role = self.para.get("role")
            # 是否重名
            if(len(User.query.filter_by(username=username).all()) > 0):
                res["msg"] = "username 已存在"
            else:
                user = User(username=username, password=password, role=role)
                db.session.add(user)
                db.session.commit()
                res["msg"] = "用户创建成功"
                res["data"] = {user.id, user.username, user.role}
                res["result"] = True
        except Exception as e:
            db.session.rollback()
            raise e
        return res

    api_doc = {

        "tags": ["认证接口"],
        "parameters": [
            {"name": "username",
             "in": "formData",
             "type": "string",
             "description": "用户名",
             "required": "true"},
            {"name": "password",
             "in": "formData",
             "type": "string",
             "description": "密码",
             "required": "true"},
            {"name": "role",
             "in": "formData",
             "type": "string",
             "description": "角色",
             "required": "true"}
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }