wip(semantic):数据æapi接口改为集中式

This commit is contained in:
zhengxinonly
2021-09-07 03:43:01 +08:00
parent 00053da117
commit e918727984
11 changed files with 76 additions and 72 deletions
+7 -6
View File
@@ -2,12 +2,13 @@ from flask import Blueprint, Flask
api_bp = Blueprint('api', __name__, url_prefix='/api/v1')
from . import department
from . import file
from . import roles
from . import rights
from . import passport
from . import users
from .rights import register_rights_api
from .system import register_system_api
from .users import register_users_api
register_rights_api(api_bp)
register_users_api(api_bp)
register_system_api(api_bp)
def init_api(app: Flask):
+25
View File
@@ -0,0 +1,25 @@
from flask_restful import Api
from .department import Departments, Department, DeptEnable
from .rights import RightRights, RightPower, RightPowerEnable, AdminConfigs, AdminMenu
from .roles import RoleRoles, RoleRole, RoleEnable, RolePower
def register_rights_api(api_bp):
dept_api = Api(api_bp, prefix='/dept')
dept_api.add_resource(Departments, '/departments')
dept_api.add_resource(Department, '/department/<int:dept_id>')
dept_api.add_resource(DeptEnable, '/department/<int:dept_id>/status')
rights_api = Api(api_bp, prefix='/rights')
rights_api.add_resource(RightRights, '/rights')
rights_api.add_resource(RightPower, '/power/<int:power_id>')
rights_api.add_resource(RightPowerEnable, '/power/<int:right_id>/status')
rights_api.add_resource(AdminConfigs, '/configs')
rights_api.add_resource(AdminMenu, '/menu')
role_api = Api(api_bp, prefix='/roles')
role_api.add_resource(RoleRoles, '/roles')
role_api.add_resource(RoleRole, '/role/<int:role_id>')
role_api.add_resource(RoleEnable, '/role/<int:role_id>/status')
role_api.add_resource(RolePower, '/role_power/<int:role_id>')
@@ -1,18 +1,15 @@
from flask import jsonify
from flask_restful import Api, Resource
from applications.api import api_bp
from flask_restful import Resource
from flask_restful import marshal, reqparse
from applications.common.serialization import dept_fields
from applications.common.utils.http import success_api, fail_api
from applications.common.utils.rights import authorize
from applications.extensions import db
from applications.models import CompanyDepartment, CompanyUser
from flask_restful import marshal, reqparse
from applications.common.serialization import dept_fields
dept_api = Api(api_bp, prefix='/dept')
@dept_api.resource('/departments')
class Department(Resource):
class Departments(Resource):
@authorize("admin:dept:main", log=True)
def get(self):
@@ -54,8 +51,7 @@ class Department(Resource):
return success_api(msg="成功")
@dept_api.resource('/department/<int:dept_id>')
class DeptURD(Resource):
class Department(Resource):
@authorize("admin:dept:edit", log=True)
def get(self, dept_id):
dept = CompanyDepartment.query.filter_by(id=dept_id).first()
@@ -109,7 +105,6 @@ class DeptURD(Resource):
return fail_api(msg="删除失败")
@dept_api.resource('/department/<int:dept_id>/status')
class DeptEnable(Resource):
@authorize("admin:dept:edit", log=True)
def put(self, dept_id):
@@ -3,9 +3,8 @@ from collections import OrderedDict
from flask import request, jsonify, current_app
from flask_login import current_user, login_required
from flask_restful import Resource, reqparse, Api, marshal
from flask_restful import Resource, reqparse, marshal
from applications.api import api_bp
from applications.common.serialization import power2_fields, power_fields
from applications.common.utils.http import success_api, fail_api
from applications.common.utils.rights import authorize
@@ -143,8 +142,6 @@ def batch_remove_power(ids):
remove_power(_id)
rights_api = Api(api_bp, prefix='/rights')
parser_power = reqparse.RequestParser(bundle_errors=True)
parser_power.add_argument('icon', type=str)
parser_power.add_argument('openType', type=str, dest='open_type')
@@ -156,7 +153,6 @@ parser_power.add_argument('powerUrl', type=str, dest='power_url')
parser_power.add_argument('sort', type=int, dest='sort')
@rights_api.resource('/rights')
class RightRights(Resource):
@authorize("admin:power:main", log=True)
def get(self):
@@ -179,8 +175,7 @@ class RightRights(Resource):
return success_api(msg="批量删除成功")
@rights_api.resource('/power/<int:power_id>')
class RightsPowerView(Resource):
class RightPower(Resource):
@authorize("admin:power:add", log=True)
def post(self, power_id):
@@ -246,8 +241,7 @@ class RightsPowerView(Resource):
return success_api(msg="更新权限成功")
@rights_api.resource('/power/<int:right_id>/status')
class PowerStatus(Resource):
class RightPowerEnable(Resource):
@authorize("admin:power:edit", log=True)
def put(self, right_id):
@@ -261,14 +255,12 @@ class PowerStatus(Resource):
return fail_api(msg="出错啦")
@rights_api.resource('/configs')
class AdminConfigs(Resource):
@login_required
def get(self):
return get_render_config()
@rights_api.resource('/menu')
class AdminMenu(Resource):
@login_required
def get(self):
@@ -1,14 +1,12 @@
from flask import jsonify
from flask_login import login_required
from flask_restful import Resource, Api, reqparse, marshal
from flask_restful import Resource, reqparse, marshal
from applications.common.serialization import power_fields
from applications.common.utils.http import table_api, success_api, fail_api
from applications.common.utils.rights import authorize
from applications.common.serialization import power_fields
from applications.extensions import db
from applications.models import RightsPower, RightsRole, CompanyUser
from . import api_bp
def remove_role(role_id):
@@ -39,10 +37,6 @@ def batch_remove_role(role_ids):
remove_role(role_id)
role_api = Api(api_bp, prefix='/roles')
@role_api.resource('/roles')
class RoleRoles(Resource):
# 表格数据
@authorize("admin:role:main", log=True)
@@ -88,7 +82,6 @@ class RoleRoles(Resource):
return success_api(msg="批量删除成功")
@role_api.resource('/role/<int:role_id>')
class RoleRole(Resource):
@authorize("admin:role:add", log=True)
@@ -141,7 +134,6 @@ class RoleRole(Resource):
return success_api(msg="更新角色成功")
@role_api.resource('/role/<int:role_id>/status')
class RoleEnable(Resource):
"""启用用户"""
@@ -157,7 +149,6 @@ class RoleEnable(Resource):
return success_api(msg=message)
@role_api.resource('/role_power/<int:role_id>')
class RolePower(Resource):
@authorize("admin:role:main", log=True)
+12
View File
@@ -0,0 +1,12 @@
from flask_restful import Api
from .file import FilePhotos, FileTable
from .passport import Login
def register_system_api(api_bp):
sys_api = Api(api_bp)
sys_api.add_resource(FilePhotos, '/file/photos')
sys_api.add_resource(FileTable, '/file/photo/<int:photo_id>')
sys_api.add_resource(Login, '/passport/login')
@@ -1,10 +1,9 @@
import os
from flask import request, jsonify, current_app
from flask_restful import Api, Resource, marshal
from flask_restful import Resource, marshal
from sqlalchemy import desc
from applications.api import api_bp
from applications.common.serialization import photo_fields
from applications.common.utils.http import fail_api, success_api, table_api
from applications.common.utils.rights import authorize
@@ -12,10 +11,7 @@ from applications.common.utils.upload import upload_one, delete_photo_by_id
from applications.extensions import db
from applications.models import FilePhoto
file_api = Api(api_bp, prefix='/file')
@file_api.resource('/photos')
class FilePhotos(Resource):
@authorize("admin:file:main", log=True)
@@ -61,7 +57,6 @@ class FilePhotos(Resource):
return fail_api(msg="删除失败")
@file_api.resource('/photo/<int:photo_id>')
class FileTable(Resource):
"""图片数据"""
@@ -1,19 +1,14 @@
from flask import render_template, make_response
from flask import session, redirect, url_for, request
from flask_login import current_user, login_user
from flask_restful import Resource, reqparse, Api
from flask_restful import Resource, reqparse
from applications.api import api_bp
from applications.common.admin_log import login_log
from applications.common.gen_captcha import add_auth_session
from applications.common.utils.http import fail_api, success_api
from applications.models import CompanyUser
from flask import render_template, make_response
passport_api = Api(api_bp, prefix='/passport')
@passport_api.resource('/login')
class Login(Resource):
login_req = reqparse.RequestParser(bundle_errors=True)
login_req.add_argument('username', type=str, help='请输入用户名', required=True)
+12 -3
View File
@@ -1,7 +1,16 @@
from flask_restful import Api
from applications.api import api_bp
from .profile import UserStatus, UserAvatar, UserInfo, UserPassword
from .user import UserUsers, UserUser, UserRole
users_api = Api(api_bp, prefix='/users')
from . import user, profile
def register_users_api(api_bp):
users_api = Api(api_bp, prefix='/users')
users_api.add_resource(UserInfo, '/user/<int:user_id>/info')
users_api.add_resource(UserStatus, '/user/<int:user_id>/status')
users_api.add_resource(UserAvatar, '/user/<int:user_id>/avatar')
users_api.add_resource(UserPassword, '/user/<int:user_id>/password')
users_api.add_resource(UserUsers, '/users')
users_api.add_resource(UserUser, '/user/<int:user_id>')
users_api.add_resource(UserRole, '/user/<int:user_id>/role')
+1 -7
View File
@@ -1,16 +1,13 @@
# 个人中心
from flask import request, jsonify
from flask_login import login_required, current_user
from flask_login import login_required
from flask_restful import Resource, reqparse
from applications.common.utils.http import fail_api, success_api
from applications.extensions import db
from applications.models import CompanyUser
from . import users_api
@users_api.resource('/user/<int:user_id>/status')
class UserStatus(Resource):
def put(self, user_id):
# 启用或者禁用用户 enable disable
@@ -35,7 +32,6 @@ class UserStatus(Resource):
return message
@users_api.resource('/user/<int:user_id>/avatar')
class UserAvatar(Resource):
"""修改头像"""
@@ -49,7 +45,6 @@ class UserAvatar(Resource):
return success_api(msg="修改成功")
@users_api.resource('/user/<int:user_id>/info')
class UserInfo(Resource):
@login_required
@@ -72,7 +67,6 @@ class UserInfo(Resource):
return success_api(msg="更新成功")
@users_api.resource('/user/<int:user_id>/password')
class UserPassword(Resource):
"""前用户密码"""
+5 -10
View File
@@ -1,15 +1,13 @@
from flask import request
from flask_restful import Resource, reqparse
from flask_login import current_user
from flask_restful import Resource, reqparse
from sqlalchemy import desc
from applications.extensions import db
from applications.common.utils.http import fail_api, success_api, table_api
from applications.common.utils.rights import authorize
from applications.models import CompanyUser, RightsRole, CompanyDepartment
from applications.extensions import db
from applications.models import AdminLog
from . import users_api
from applications.models import CompanyUser, RightsRole, CompanyDepartment
def get_current_user_logs():
@@ -59,7 +57,6 @@ def update_user_role(_id, roles_list):
db.session.commit()
@users_api.resource('/users')
class UserUsers(Resource):
"""用户列表数据操作"""
@@ -140,7 +137,6 @@ class UserUsers(Resource):
return success_api(msg="批量删除成功")
@users_api.resource('/user/<int:user_id>')
class UserUser(Resource):
"""修改用户数据"""
@@ -185,7 +181,6 @@ class UserUser(Resource):
return success_api(msg="删除成功")
@users_api.resource('/user/<int:user_id>/role')
class UserRole(Resource):
@authorize("admin:user:edit", log=True)
def put(self, user_id):
@@ -201,8 +196,8 @@ class UserRole(Resource):
# 更新用户数据
CompanyUser.query.filter_by(id=user_id).update({'username': res.username,
'realname': res.real_name,
'dept_id': res.dept_id})
'realname': res.real_name,
'dept_id': res.dept_id})
db.session.commit()
update_user_role(user_id, role_ids)