示例#1
0
from apps.auth.auth_require import required
from apps.project.business.version import VersionBusiness
from apps.project.extentions import parse_json_form, validation
from library.api.render import json_detail_render
from library.api.tBlueprint import tblueprint

bpname = 'version'
view_permission = f'{bpname}_view'
modify_permission = f'{bpname}_modify'
version = tblueprint(bpname, __name__, has_view=False)


# 版本新增
@version.route('/', methods=['POST'])
@required(modify_permission)
@validation('POST:versioncreate')
def version_add_handler():
    """
    @api {post} /v1/version/ 新增版本
    @apiName CreateVersion
    @apiGroup 项目
    @apiDescription 新增版本
    @apiParam {string} title 标题
    @apiParam {int} project_id 项目ID
    @apiParam {string} start_time 版本开始时间
    @apiParam {string} end_time 版本结束时间
    @apiParam {int} creator 创建人
    @apiParam {int} publish_status 发布状态0:未发布1:已发布
    @apiParam {string} description 描述
    @apiParam {string} comment 备注
    @apiParamExample {json} Request-Example:
示例#2
0
from flask import request, current_app, g

from apps.auth.auth_require import required
from apps.auth.business.auth import AuthBusiness
from apps.auth.business.users import UserBusiness
from apps.auth.extentions import parse_list_args, validation, parse_json_form
from library.api.render import json_list_render, json_detail_render
from library.api.tBlueprint import tblueprint

bpname = 'user'
bpname_relate = 'projectconfig'
view_permission = f'{bpname_relate}_view'
modify_permission = f'{bpname_relate}_modify'
user = tblueprint(bpname, __name__, bpname=bpname_relate, has_view=False)


@user.route('/', methods=['GET'])
def user_list_handler():
    """
    @api {get} /v1/user/ 获取 用户信息
    @apiName GetUserInfo
    @apiGroup 用户
    @apiDescription 分页查询用户信息,可选参数角色
    @apiParam {int} [role] roleid
    @apiSuccess {list} role 用户权限列表
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
     {
        "code": 0,
        "data": [
            {
示例#3
0
from flask import request

from apps.auth.auth_require import required
from apps.project.business.requirement import RequirementBusiness, RequirementRecordBusiness, RequirementReviewBusiness
from apps.project.extentions import parse_list_args2, parse_json_form, validation
from library.api.render import json_detail_render, json_list_render2
from library.api.tBlueprint import tblueprint

bpname = 'requirement'
view_permission = f'{bpname}_view'
modify_permission = f'{bpname}_modify'
requirement = tblueprint(bpname, __name__)


# 需求新增
@requirement.route('/', methods=['POST'])
@required(modify_permission)
@validation('POST:requirementcreate')
def requirement_add_handler():
    """
    @api {post} /requirement/ 新增需求
    @apiName CreateRequirement
    @apiGroup 项目
    @apiDescription 新增需求
    @apiParam {string} title 标题
    @apiParam {int} project_id 项目ID
    @apiParam {string} version 所属版本
    @apiParam {int} requirement_type 类型
    @apiParam {int} creator 创建人
    @apiParam {int} handler 处理人
    @apiParam {int} board_status 需求看板状态
示例#4
0
from flask import request

from apps.flow.business.deploy import DeployBusiness, DeployRecordBusiness, DeployLogBusiness
from apps.flow.extentions import validation, parse_json_form, parse_list_args2
from library.api.render import json_detail_render, json_list_render2
from library.api.tBlueprint import tblueprint

bpname = 'deploy'
bpname_relate = 'flow'
view_permission = f'{bpname_relate}_view'
modify_permission = f'{bpname_relate}_modify'
deploy = tblueprint(bpname, __name__, bpname=bpname_relate)


@deploy.route('/getserver', methods=['GET'])
def deploy_get_server_handler():
    """
    @api {get} /v1/deploy/getserver 获取服务列表
    @apiName deployGetServer
    @apiGroup Deploy
    @apiDescription 获取服务列表
    @apiParam {int} project_id 项目id
    @apiParamExample {json} Request-Example:
    {
        "project_id": 1,
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code": 0,
        "data": [
示例#5
0
from apps.auth.business.ability import AbilityBusiness
from apps.auth.extentions import parse_list_args
from library.api.render import json_list_render
from library.api.tBlueprint import tblueprint

bpname = 'ability'
ability = tblueprint(bpname, __name__)


@ability.route('/', methods=['GET'])
def ability_index_handler():
    """
    @api {get} /v1/ability 查询 Ability列表
    @apiName GetAbility
    @apiGroup 用户
    @apiDescription 查询Ability列表
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
     {
        "code": 0,
        "data": [
            {
                "handler": "user",
                "id": 1,
                "name": "用户模块"
            }
        ],
        "limit": 99999,
        "message": "ok",
        "offset": 0
    }
示例#6
0
from flask import request

from apps.auth.auth_require import required
from apps.project.business.modules import ModuleBusiness
from apps.project.extentions import parse_json_form, validation
from library.api.render import json_detail_render
from library.api.tBlueprint import tblueprint

bpname = 'module'
view_permission = f'{bpname}_view'
modify_permission = f'{bpname}_modify'
module = tblueprint(bpname, __name__)


@module.route('/', methods=['POST'])
@required(modify_permission)
@validation('POST:modulecreate')
def module_indexs_handler():
    """
    @api {post} /v1/module/ 新增 模块
    @apiName CreateModule
    @apiGroup 项目
    @apiDescription 新增模块,分为父模块还是子模块
    @apiParam {string} name 名称
    @apiParam {int} project_id 项目od
    @apiParam {string} description 描述
    @apiParam {int} parent_id 父模块id
    @apiParamExample {json} Request-Example:
    {
        "name":"用力模块",
        "project_id":4,
示例#7
0
from flask import request

from apps.auth.auth_require import required
from apps.project.business.cases import CaseBusiness
from apps.project.extentions import parse_list_args2, parse_json_form, validation
from library.api.render import json_detail_render, json_list_render2
from library.api.tBlueprint import tblueprint

bpname = 'case'
view_permission = f'{bpname}_view'
modify_permission = f'{bpname}_modify'
case = tblueprint(bpname, __name__)


@case.route('/', methods=['POST'])
@required(modify_permission)
@validation('POST:casecreate')
def case_create_handler():
    """
    @api {post} /v1/case/ 新增 用例
    @apiName CreateCase
    @apiGroup 项目
    @apiDescription 新增用例
    @apiParam {int} module_id 模块id
    @apiParam {string} ctype 用例类型
    @apiParam {string} title 标题
    @apiParam {string} precondition 前置条件
    @apiParam {string} step_result 用例步骤及预期结果 json->string格式存入
    @apiParam {int} creator 创建人
    @apiParam {int} priority 优先级 0:紧急 1:高 2:中 3:低
    @apiParam {list} requirement_ids 需求 ID 列表
示例#8
0
from apps.auth.auth_require import required
from apps.project.business.tasks import TaskBusiness, TaskDashBoardBusiness
from apps.project.extentions import parse_list_args2, parse_json_form, validation
from library.api.render import json_detail_render, json_list_render2
from library.api.tBlueprint import tblueprint

bpname = 'task'
view_permission = f'{bpname}_view'
modify_permission = f'{bpname}_modify'
task = tblueprint(bpname, __name__)


# 新增task
@task.route('/', methods=['POST'])
@required(modify_permission)
@validation('POST:task_create')
def task_add_handler():
    """
    @api {post} /v1/task/ 新增 任务
    @apiName CreateTask
    @apiGroup 项目
    @apiDescription 新增任务
    @apiParam {string} description 任务描述
    @apiParam {string} tmethod 任务方法:自动化or人工测试
    @apiParam {string} ttype 任务类型:功能测试,兼容性测试…
    @apiParam {int} creator 创建任务的人
    @apiParam {int} executor 执行任务的人
    @apiParam {int} priority 优先级0:紧急1:高2:中3:低
    @apiParam {list} case_list 关联的case列表
    @apiParam {string} name 名称
    @apiParam {int} project_id 项目ID
示例#9
0
from apps.auth.auth_require import is_admin, required_without_projectid
from apps.project.business.assets import PhoneBusiness, PhoneRecordBusiness, VirtualAssetBusiness, PhoneBorrowBusiness
from apps.project.extentions import parse_list_args2, parse_json_form, validation
from library.api.render import json_list_render2, json_detail_render
from library.api.tBlueprint import tblueprint

bpname = 'asset'
modify_permission = f'{bpname}_modify'
phone = tblueprint('phone', __name__, bpname, with_pid=False, has_view=False)
virtualasset = tblueprint('virtual', __name__, bpname, with_pid=False, has_view=False)

"""
blueprint自带的before_request 做get和delete这些没有争议的请求方式权限控制
post可能包含查询、新增、修改等,所以单独加上装饰器管理
"""


@phone.route('/', methods=['GET'])
def phone_index_handler():
    """
    @api {get} /v1/asset/phone 查询 资产设备列表
    @apiName GetPhoneList
    @apiGroup 项目
    @apiDescription 查询 资产设备列表
    @apiParam {int} [page_size] 分页-单页大小
    @apiParam {int} [page_index] 分页-页数
    @apiParam {string} [name] 资产名称
    @apiParam {string} [vendor] 制造商
    @apiParam {string} [os] 操作系统
    @apiParam {string} [resolution] 分辨率
    @apiParam {int} [borrower_id] 持有人 ID
示例#10
0
from apps.auth.auth_require import required
from apps.project.business.boardconfig import BoardConfigBusiness
from apps.project.extentions import validation, parse_json_form
from library.api.render import json_detail_render
from library.api.tBlueprint import tblueprint

bpname = 'boardconfig'
bpname_relate = 'projectconfig'
modify_permission = f'{bpname}_modify'
board_config = tblueprint(bpname,
                          __name__,
                          bpname=bpname_relate,
                          has_view=False)


@board_config.route('/<int:project_id>', methods=['GET'])
def get_project_config(project_id):
    """
    @api {get} /v1/boardconfig/{project_id} 获取 项目看板配置
    @apiName GetBoardConfig
    @apiGroup 项目
    @apiDescription 获取当前项目的看板配置情况,包括requirement和issue
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
     {
        "code": 0,
        "data": [
            {
                "issue": {
                    "1": "代办",
                    "2": "修复中",
示例#11
0
from flask import request

from apps.auth.auth_require import required
from apps.project.business.issue import IssueBusiness, IssueRecordBusiness, IssueDashBoardBusiness
from apps.project.extentions import parse_json_form, validation, parse_list_args2
from library.api.render import json_detail_render, json_list_render2
from library.api.tBlueprint import tblueprint

bpname = 'issue'
view_permission = f'{bpname}_view'
modify_permission = f'{bpname}_modify'
issue = tblueprint(bpname, __name__)


# 新增issue
@issue.route('/', methods=['POST'])
@required(modify_permission)
@validation('POST:issue_create')
def issue_add_handler():
    """
    @api {post} /v1/issue 新增 缺陷
    @apiName CreateIssue
    @apiGroup 项目
    @apiDescription 新增 缺陷
    @apiParam {int} module_id 模块 ID
    @apiParam {int} handler 处理人 ID
    @apiParam {int} issue_type 类型
    @apiParam {int} chance 出现几率
    @apiParam {int} level 级别
    @apiParam {int} priority 优先级
    @apiParam {int} system 系统
示例#12
0
from apps.auth.auth_require import required
from apps.project.business.project import ProjectBusiness
from apps.project.extentions import parse_json_form, validation
from library.api.render import json_detail_render
from library.api.tBlueprint import tblueprint

bpname = 'project'
view_permission = f'{bpname}_view'
modify_permission = f'{bpname}_modify'
project = tblueprint(bpname, __name__, with_pid=False, has_view=False)


@project.route('/', methods=['POST'])
@required(modify_permission)
@validation('POST:addproject')
def project_indexs_handler():
    """
    @api {post} /v1/project/ 新增项目
    @apiName CreateProject
    @apiGroup 项目
    @apiDescription 新增项目
    @apiParam {string} name 项目名称
    @apiParam {string} description 描述
    @apiParam {string} logo logo图片
    @apiParamExample {json} Request-Example:
    {
        "name": "电梯贷款",
        "description": "description",
        "logo":"pic"
    }
    @apiSuccessExample {json} Success-Response:
示例#13
0
from apps.auth.auth_require import required
from apps.project.business.issue import IssueBusiness
from apps.project.business.tasks import TaskCaseRecordBusiness, TaskDashBoardBusiness, TaskCaseBusiness
from apps.project.extentions import parse_json_form, validation
from library.api.render import json_detail_render
from library.api.tBlueprint import tblueprint

bpname = 'taskcase'
bpname_relate = 'case'
excute_permission = f'{bpname_relate}_excute'
taskcase = tblueprint(bpname, __name__, bpname=bpname_relate, has_delete=False)


# 根据taskcaseid进行修改,删除操作
@taskcase.route('/<int:task_case_id>', methods=['POST'])
@required(excute_permission)
@validation('POST:task_case_modify')
def task_case_modify_handler(task_case_id):
    """
    @api {post} /v1/taskcase/{taskcaseid} 修改 单个任务用例
    @apiName ModifyTaskCase
    @apiGroup 项目
    @apiDescription 修改单个任务用例
    @apiParam {int} executor 用例执行者保存的为用户id
    @apiParam {int} exe_way 执行方式,0:批量执行1:单个执行
    @apiParam {string} case_number 编号
    @apiParam {int} module_id 用例模块
    @apiParam {string} case_type 用例类型
    @apiParam {string} title 标题
    @apiParam {string} case_describe 用例描述
    @apiParam {string} precondition 前置条件
示例#14
0
from flask import request

from apps.auth.auth_require import required
from apps.project.business.tag import TagBusiness
from apps.project.extentions import parse_json_form, validation
from library.api.tBlueprint import tblueprint

bpname = 'tag'
modify_permission = f'{bpname}_modify'
tag = tblueprint(bpname, __name__)


# 获取到的tag标签
@tag.route('/', methods=['GET'])
def gain_tag():
    """
    @api {get} /v1/tag/ 获取 标签
    @apiName GetTag
    @apiGroup 项目
    @apiDescription 根据当前project_id来获取所有标签
    @apiParam {int} project_id 项目ID
    @apiParam {string} tag tag名称模糊查询
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
      "code": 0,
      "data": [
        {
          "id": 16,
          "tag": "老功能新操作"
        },
示例#15
0
from flask import request

from apps.auth.auth_require import required
from apps.flow.business.deploy import DeployLogBusiness
from apps.flow.business.flow import FlowBusiness
from apps.flow.extentions import validation, parse_json_form, parse_list_args2
from library.api.render import json_detail_render, json_list_render2
from library.api.tBlueprint import tblueprint

bpname = 'flow'
view_permission = f'{bpname}_view'
modify_permission = f'{bpname}_modify'
flow = tblueprint(bpname, __name__)


# 流程新增
@flow.route('/', methods=['POST'])
@validation('POST:flow_create')
@required(modify_permission)
def flow_add_handler():
    """
    @api {post} /v1/flow/ 新增 流程
    @apiName CreateFlow
    @apiGroup 流程
    @apiDescription 新增流程
    @apiParam {int} flow_type 流程类型
    @apiParam {int} flow_assemble_id 流程集合
    @apiParam {int} [priority] 优先级
    @apiParam {int} project_id 项目ID
    @apiParam {int} version_id 版本ID
    @apiParam {int} creator 创建用户ID