Exemplo n.º 1
0
def del_api(request):
    """
    删除接口
    project_id  项目ID
    api_ids 接口ID列表
    :return:
    """
    project_id = request.POST.get("project_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    ids = request.POST.get("api_ids")
    id_list = ids.split(",")
    for i in id_list:
        if not i.isdecimal():
            return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        for j in id_list:
            obi = ApiInfo.objects.filter(id=j, project=project_id)
            if len(obi) != 0:
                name = obi[0].name
                obi.delete()
                record_dynamic(project_id, "删除", "接口", "删除接口“%s”" % name)
        return JsonResponse(code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 2
0
def update_group(request):
    """
    修改接口所属分组
    project_id  项目ID
    api_ids 接口ID列表
    first_group_id 一级分组ID
    second_group_id 二级分组ID
    :return:
    """
    project_id = request.POST.get("project_id")
    ids = request.POST.get("api_ids")
    id_list = ids.split(",")
    first_group_id = request.POST.get("first_group_id")
    second_group_id = request.POST.get("second_group_id")
    if not project_id.isdecimal() or not first_group_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        api_first_group = ApiGroupLevelFirst.objects.filter(id=first_group_id)
        if api_first_group:
            if first_group_id and second_group_id:
                if not second_group_id.isdecimal():
                    return JsonResponse(
                        code_msg=GlobalStatusCode.parameter_wrong())
                api_second_group = ApiGroupLevelSecond.objects.filter(
                    id=second_group_id)
                if api_second_group:
                    for i in id_list:
                        if not i.isdecimal():
                            return JsonResponse(
                                code_msg=GlobalStatusCode.parameter_wrong())
                    for j in id_list:
                        ApiInfo.objects.filter(
                            id=j, project=project_id).update(
                                apiGroupLevelFirst=ApiGroupLevelFirst.objects.
                                get(id=first_group_id),
                                apiGroupLevelSecond=ApiGroupLevelSecond.
                                objects.get(id=second_group_id))
                else:
                    return JsonResponse(
                        code_msg=GlobalStatusCode.group_not_exist())
            elif first_group_id and second_group_id == "":
                for i in id_list:
                    if not i.isdecimal():
                        return JsonResponse(
                            code_msg=GlobalStatusCode.parameter_wrong())
                for j in id_list:
                    ApiInfo.objects.filter(id=j, project=project_id).update(
                        apiGroupLevelFirst=ApiGroupLevelFirst.objects.get(
                            id=first_group_id))
            else:
                return JsonResponse(
                    code_msg=GlobalStatusCode.parameter_wrong())
            record_dynamic(project_id, "修改", "接口", "修改接口分组,列表“%s”" % id_list)
            return JsonResponse(code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.group_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
 def parameter_check(self, project_id):
     """
     校验参数
     :param project_id:
     :return:
     """
     try:
         # 校验project_id类型为int
         if not project_id.isdecimal():
             return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
     except KeyError:
         return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
Exemplo n.º 4
0
 def parameter_check(self, data):
     """
     校验参数
     :param data:
     :return:
     """
     try:
         # 校验project_id类型为int
         if not isinstance(data["project_id"], int):
             return JsonResponse(
                 code_msg=GlobalStatusCode.parameter_wrong())
     except KeyError:
         return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
Exemplo n.º 5
0
def project_member(request):
    """
    获取成员信息
    project_id  项目ID
    :return:
    """
    try:
        page_size = int(request.GET.get('page_size', 20))
        page = int(request.GET.get('page', 1))
    except (TypeError, ValueError):
        return JsonResponse(code_msg=GlobalStatusCode.page_not_int())
    project_id = request.GET.get('project_id')
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ProjectMember.objects.filter(project=project_id).order_by('id')
        paginator = Paginator(obi, page_size)  # paginator对象
        total = paginator.num_pages  # 总页数
        try:
            obm = paginator.page(page)
        except PageNotAnInteger:
            obm = paginator.page(1)
        except EmptyPage:
            obm = paginator.page(paginator.num_pages)
        serialize = ProjectMemberSerializer(obm, many=True)
        return JsonResponse(data={
            'data': serialize.data,
            'page': page,
            'total': total
        },
                            code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 6
0
def del_history(request):
    """
    删除请求历史
    project_id 项目ID
    api_id 接口ID
    history_id 请求历史ID
    :return:
    """
    project_id = request.POST.get("project_id")
    api_id = request.POST.get("api_id")
    history_id = request.POST.get("history_id")
    if not project_id.isdecimal() or not api_id.isdecimal(
    ) or not history_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ApiInfo.objects.filter(id=api_id, project=project_id)
        if obi:
            obm = APIRequestHistory.objects.filter(id=history_id,
                                                   apiInfo=api_id)
            if obm:
                obm.delete()
                api_record = ApiOperationHistory(
                    apiInfo=ApiInfo.objects.get(id=api_id),
                    user=User.objects.get(id=request.user.pk),
                    description="删除请求历史记录")
                api_record.save()
                return JsonResponse(code_msg=GlobalStatusCode.success())
            else:
                return JsonResponse(
                    code_msg=GlobalStatusCode.history_not_exist())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.api_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 7
0
def dynamic(request):
    """
    获取动态数量
    project_id  项目ID
    :return:
    """
    try:
        page_size = int(request.GET.get("page_size", 20))
        page = int(request.GET.get("page", 1))
    except (TypeError, ValueError):
        return JsonResponse(code_msg=GlobalStatusCode.page_not_int())
    project_id = request.GET.get("project_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obi = Project.objects.filter(id=project_id)
    if obi:
        obj = ProjectDynamic.objects.filter(project=project_id).order_by("-time")
        paginator = Paginator(obj, page_size)  # paginator对象
        total = paginator.num_pages  # 总页数
        try:
            obm = paginator.page(page)
        except PageNotAnInteger:
            obm = paginator.page(1)
        except EmptyPage:
            obm = paginator.page(paginator.num_pages)
        serialize = ProjectDynamicSerializer(obm, many=True)
        return JsonResponse(data={"data": serialize.data,
                                  "page": page,
                                  "total": total
                                  }, code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 8
0
def enable_host(request):
    """
    启用host
    project_id  项目ID
    host_id 地址ID
    :return:
    """
    project_id = request.POST.get('project_id')
    host_id = request.POST.get('host_id')
    if not project_id.isdecimal() or not host_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = GlobalHost.objects.filter(id=host_id, project=project_id)
        if obi:
            obi.update(status=True)
            record = ProjectDynamic(project=Project.objects.get(id=project_id),
                                    type='启用',
                                    operationObject='HOST',
                                    user=User.objects.get(id=request.user.pk),
                                    description='启用HOST“%s”' % obi[0].name)
            record.save()
            return JsonResponse(code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.host_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 9
0
def add_group(request):
    """
    添加接口分组
    project_id 项目ID
    name  名称
    first_group_id 一级分组ID
    :return:
    """
    project_id = request.POST.get("project_id")
    name = request.POST.get("name")
    first_group_id = request.POST.get("first_group_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())

    obj = Project.objects.filter(id=project_id)
    if obj:
        # 添加二级分组名称
        if first_group_id:
            if not first_group_id.isdecimal():
                return JsonResponse(
                    code_msg=GlobalStatusCode.parameter_wrong())
            obi = ApiGroupLevelFirst.objects.filter(id=first_group_id,
                                                    project=project_id)
            if obi:
                obi = ApiGroupLevelSecond(
                    apiGroupLevelFirst=ApiGroupLevelFirst.objects.get(
                        id=first_group_id),
                    name=name)
                obi.save()
            else:
                return JsonResponse(
                    code_msg=GlobalStatusCode.group_not_exist())
        # 添加一级分组名称
        else:
            obi = ApiGroupLevelFirst(
                project=Project.objects.get(id=project_id), name=name)
            obi.save()
        record_dynamic(project=project_id,
                       _type="新增",
                       operationObject="接口分组",
                       user=request.user.pk,
                       data="新增接口分组“%s”" % obi.name)
        return JsonResponse(data={"group_id": obi.pk},
                            code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 10
0
 def parameter_check(self, data):
     """
     验证参数
     :param data:
     :return:
     """
     try:
         # 必传参数 name, version, type
         if not data["name"] or not data["version"] or not data["type"]:
             return JsonResponse(
                 code_msg=GlobalStatusCode.parameter_wrong())
         # type 类型 Web, App
         if data["type"] not in ["Web", "App"]:
             return JsonResponse(
                 code_msg=GlobalStatusCode.parameter_wrong())
     except KeyError:
         return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
Exemplo n.º 11
0
def update_name_group(request):
    """
    修改接口分组名称
    project_id 项目ID
    name  名称
    first_group_id 一级分组ID
    second_group_id 二级分组id
    :return:
    """
    project_id = request.POST.get("project_id")
    name = request.POST.get("name")
    first_group_id = request.POST.get("first_group_id")
    second_group_id = request.POST.get("second_group_id")
    if not project_id.isdecimal() or not first_group_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ApiGroupLevelFirst.objects.filter(id=first_group_id,
                                                project=project_id)
        if obi:
            # 修改二级分组名称
            if second_group_id:
                if not second_group_id.isdecimal():
                    return JsonResponse(
                        code_msg=GlobalStatusCode.parameter_wrong())
                obm = ApiGroupLevelSecond.objects.filter(
                    id=second_group_id, apiGroupLevelFirst=first_group_id)
                if obm:
                    obm.update(name=name)
                else:
                    return JsonResponse(
                        code_msg=GlobalStatusCode.group_not_exist())
            # 修改一级分组名称
            else:
                obi.update(name=name)
            record_dynamic(project=project_id,
                           _type="修改",
                           operationObject="接口分组",
                           user=request.user.pk,
                           data="修改接口分组“%s”" % name)
            return JsonResponse(code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.group_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 12
0
def update_project(request):
    """
    修改项目
    project_id: 项目唯一id
    name: 项目名称
    v: 项目版本
    type: 项目类型
    description: 项目描述
    :return:
    """
    project_id = request.POST.get("project_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    name = request.POST.get("name")
    version = request.POST.get("v")
    _type = request.POST.get("type")
    description = request.POST.get("description")
    if _type in ["Web", "App"]:
        obj = Project.objects.filter(id=project_id)
        if obj:
            obi = Project.objects.filter(name=name).exclude(id=project_id)
            if len(obi) == 0:
                obj.update(name=name,
                           version=version,
                           type=_type,
                           description=description,
                           user=User.objects.get(id=request.user.pk))
                record = ProjectDynamic(
                    project=Project.objects.get(id=project_id),
                    type="修改",
                    operationObject="项目",
                    user=User.objects.get(id=request.user.pk),
                    description="修改项目“%s”" % name)
                record.save()
                return JsonResponse(code_msg=GlobalStatusCode.success())

            else:
                return JsonResponse(
                    code_msg=GlobalStatusCode.name_repetition())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
Exemplo n.º 13
0
def update_project(request):
    """
    修改项目
    project_id: 项目唯一id
    name: 项目名称
    v: 项目版本
    type: 项目类型
    description: 项目描述
    :return:
    """
    project_id = request.POST.get('project_id')
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    name = request.POST.get('name')
    version = request.POST.get('v')
    _type = request.POST.get('type')
    description = request.POST.get('description')
    if _type in ['Web', 'App']:
        obj = Project.objects.filter(id=project_id)
        if obj:
            obi = Project.objects.filter(name=name).exclude(id=project_id)
            if len(obi) == 0:
                obj.update(name=name,
                           version=version,
                           type=_type,
                           description=description,
                           user=User.objects.get(id=request.user.pk))
                record = ProjectDynamic(
                    project=Project.objects.get(id=project_id),
                    type='修改',
                    operationObject='项目',
                    user=User.objects.get(id=request.user.pk),
                    description='修改项目“%s”' % name)
                record.save()
                return JsonResponse(code_msg=GlobalStatusCode.success())

            else:
                return JsonResponse(
                    code_msg=GlobalStatusCode.name_repetition())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
Exemplo n.º 14
0
        def verify(reality_parameter):
            """
            :param reality_parameter: 实际参数
            :return:
            """
            if method == 'POST':
                parameter = dict(reality_parameter.POST.lists())
            elif method == 'GET':
                parameter = dict(reality_parameter.GET.lists())
            else:
                raise Exception
            if set(expect_parameter).issubset(list(parameter)):
                for i in expect_parameter:
                    if parameter[i] == ['']:
                        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
            else:
                return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())

            return func(reality_parameter)
Exemplo n.º 15
0
def del_group(request):
    """
    删除接口分组
    project_id 项目ID
    first_group_id 一级分组id
    second_group_id 二级分组id
    :return:
    """
    project_id = request.POST.get("project_id")
    first_group_id = request.POST.get("first_group_id")
    if not project_id.isdecimal() or not first_group_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    second_group_id = request.POST.get("second_group_id")
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ApiGroupLevelFirst.objects.filter(id=first_group_id,
                                                project=project_id)
        if obi:
            name = obi[0].name
            # 删除二级分组
            if second_group_id:
                if not second_group_id.isdecimal():
                    return JsonResponse(
                        code_msg=GlobalStatusCode.parameter_wrong())
                obi = ApiGroupLevelSecond.objects.filter(
                    id=second_group_id, apiGroupLevelFirst=first_group_id)
                if obi:
                    obi.delete()
                else:
                    return JsonResponse(
                        code_msg=GlobalStatusCode.group_not_exist())
            else:
                obi.delete()
            record_dynamic(project=project_id,
                           _type="删除",
                           operationObject="接口分组",
                           user=request.user.pk,
                           data="删除接口分组“%s”" % name)
            return JsonResponse(code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.group_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 16
0
def add_group(request):
    """
    添加接口分组
    project_id 项目ID
    name  名称
    first_group_id 一级分组ID
    :return:
    """
    project_id = request.POST.get('project_id')
    name = request.POST.get('name')
    first_group_id = request.POST.get('first_group_id')
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())

    obj = Project.objects.filter(id=project_id)
    if obj:
        # 添加二级分组名称
        if first_group_id:
            if not first_group_id.isdecimal():
                return JsonResponse(
                    code_msg=GlobalStatusCode.parameter_wrong())
            obi = ApiGroupLevelFirst.objects.filter(id=first_group_id,
                                                    project=project_id)
            if obi:
                obi = ApiGroupLevelSecond(
                    apiGroupLevelFirst=ApiGroupLevelFirst.objects.get(
                        id=first_group_id),
                    name=name)
                obi.save()
            else:
                return JsonResponse(
                    code_msg=GlobalStatusCode.group_not_exist())
        # 添加一级分组名称
        else:
            obi = ApiGroupLevelFirst(
                project=Project.objects.get(id=project_id), name=name)
            obi.save()
        record_dynamic(project_id, '新增', '接口分组', '新增接口分组“%s”' % obi.name)
        return JsonResponse(data={'group_id': obi.pk},
                            code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 17
0
def update_name_group(request):
    """
    修改接口分组名称
    project_id 项目ID
    name  名称
    first_group_id 一级分组ID
    second_group_id 二级分组id
    :return:
    """
    project_id = request.POST.get('project_id')
    name = request.POST.get('name')
    first_group_id = request.POST.get('first_group_id')
    second_group_id = request.POST.get('second_group_id')
    if not project_id.isdecimal() or not first_group_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ApiGroupLevelFirst.objects.filter(id=first_group_id,
                                                project=project_id)
        if obi:
            # 修改二级分组名称
            if second_group_id:
                if not second_group_id.isdecimal():
                    return JsonResponse(
                        code_msg=GlobalStatusCode.parameter_wrong())
                obm = ApiGroupLevelSecond.objects.filter(
                    id=second_group_id, apiGroupLevelFirst=first_group_id)
                if obm:
                    obm.update(name=name)
                else:
                    return JsonResponse(
                        code_msg=GlobalStatusCode.group_not_exist())
            # 修改一级分组名称
            else:
                obi.update(name=name)
            record_dynamic(project_id, '修改', '接口分组', '修改接口分组“%s”' % name)
            return JsonResponse(code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.group_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 18
0
 def parameter_check(self, data):
     """
     校验参数
     :param data:
     :return:
     """
     try:
         # 校验project_id类型为int
         if not isinstance(data["project_id"], int):
             return JsonResponse(
                 code_msg=GlobalStatusCode.parameter_wrong())
         # 必传参数 name, version , type
         if not data["name"] or not data["version"] or not data["type"]:
             return JsonResponse(
                 code_msg=GlobalStatusCode.parameter_wrong())
         # type 必为Web, App
         if data["type"] not in ["Web", "App"]:
             return JsonResponse(
                 code_msg=GlobalStatusCode.parameter_wrong())
     except KeyError:
         return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
def auto_test_report(request):
    """
    测试结果报告
    project_id  项目ID
    :param request:
    :return:
    """
    project_id = request.GET.get("project_id")
    time = request.GET.get('time')
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obi = Project.objects.filter(id=project_id)
    if obi:
        obj = AutomationTestCase.objects.filter(project=project_id)
        if obj:
            case = Q()
            for i in obj:
                case = case | Q(automationTestCase=i.pk)
            case_data = AutomationCaseApi.objects.filter(case)
            api = Q()
            if case_data:
                for j in case_data:
                    api = api | Q(automationCaseApi=j.pk)

                data = AutomationAutoTestResultSerializer(
                    AutomationCaseTestResult.objects.filter(api,
                                                            testTime=time),
                    many=True).data
                success = 0
                fail = 0
                not_run = 0
                error = 0
                for i in data:
                    if i["result"] == "PASS":
                        success = success + 1
                    elif i["result"] == "FAIL":
                        fail = fail + 1
                    elif i["result"] == "ERROR":
                        error = error + 1
                    else:
                        not_run = not_run + 1
                return JsonResponse(code_msg=GlobalStatusCode.success(),
                                    data={
                                        "data": data,
                                        "total": len(data),
                                        "pass": success,
                                        "fail": fail,
                                        "error": error,
                                        "NotRun": not_run
                                    })
            else:
                return JsonResponse(code_msg=GlobalStatusCode.success())
Exemplo n.º 20
0
def del_group(request):
    """
    删除接口分组
    project_id 项目ID
    first_group_id 一级分组id
    second_group_id 二级分组id
    :return:
    """
    project_id = request.POST.get('project_id')
    first_group_id = request.POST.get('first_group_id')
    if not project_id.isdecimal() or not first_group_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    second_group_id = request.POST.get('second_group_id')
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ApiGroupLevelFirst.objects.filter(id=first_group_id,
                                                project=project_id)
        if obi:
            name = obi[0].name
            # 删除二级分组
            if second_group_id:
                if not second_group_id.isdecimal():
                    return JsonResponse(
                        code_msg=GlobalStatusCode.parameter_wrong())
                obi = ApiGroupLevelSecond.objects.filter(
                    id=second_group_id, apiGroupLevelFirst=first_group_id)
                if obi:
                    obi.delete()
                else:
                    return JsonResponse(
                        code_msg=GlobalStatusCode.group_not_exist())
            else:
                obi.delete()
            record_dynamic(project_id, '删除', '接口分组', '删除接口分组“%s”' % name)
            return JsonResponse(code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.group_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 21
0
def add_history(request):
    """
    新增请求记录
    project_id 项目ID
    api_id 接口ID
    requestType 接口请求方式
    url 请求地址
    httpStatus htt状态
    :return:
    """
    project_id = request.POST.get("project_id")
    api_id = request.POST.get("api_id")
    request_type = request.POST.get("requestType")
    url = request.POST.get("url")
    http_status = request.POST.get("httpStatus")
    if not project_id.isdecimal() or not api_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    if request_type not in ["POST", "GET", "PUT", "DELETE"]:
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    if http_status not in ["200", "404", "400", "502", "500", "302"]:
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ApiInfo.objects.filter(id=api_id, project=project_id)
        if obi:
            history = APIRequestHistory(apiInfo=ApiInfo.objects.get(
                id=api_id, project=project_id),
                                        requestType=request_type,
                                        requestAddress=url,
                                        httpCode=http_status)
            history.save()
            return JsonResponse(data={"history_id": history.pk},
                                code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.api_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 22
0
def add_history(request):
    """
    新增请求记录
    project_id 项目ID
    api_id 接口ID
    requestType 接口请求方式
    url 请求地址
    httpStatus htt状态
    :return:
    """
    project_id = request.POST.get('project_id')
    api_id = request.POST.get('api_id')
    request_type = request.POST.get('requestType')
    url = request.POST.get('url')
    http_status = request.POST.get('httpStatus')
    if not project_id.isdecimal() or not api_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    if request_type not in ['POST', 'GET', 'PUT', 'DELETE']:
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    if http_status not in ['200', '404', '400', '502', '500', '302']:
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ApiInfo.objects.filter(id=api_id, project=project_id)
        if obi:
            history = APIRequestHistory(apiInfo=ApiInfo.objects.get(
                id=api_id, project=project_id),
                                        requestType=request_type,
                                        requestAddress=url,
                                        httpCode=http_status)
            history.save()
            return JsonResponse(data={'history_id': history.pk},
                                code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.api_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
def project_info(request):
    """
    获取项目详情
    project_id 项目id
    :return:
    """
    project_id = request.GET.get("project_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    try:
        obj = Project.objects.get(id=project_id)
        serialize = ProjectSerializer(obj)
        return JsonResponse(data=serialize.data, code_msg=GlobalStatusCode.success())
    except ObjectDoesNotExist:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 24
0
def del_host(request):
    """
    删除host
    project_id  项目ID
    ids 地址ID
    :return:
    """
    project_id = request.POST.get('project_id')
    ids = request.POST.get('ids')
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    id_list = ids.split(',')
    for i in id_list:
        if not i.isdecimal():
            return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        for j in id_list:
            obi = GlobalHost.objects.filter(id=int(j), project=project_id)
            if obi:
                obi.delete()
        return JsonResponse(code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 25
0
def del_project(request):
    """
    删除项目
    project_id 待删除的项目ID
    :return:
    """
    project_id = request.POST.get('ids')
    id_list = project_id.split(',')
    for i in id_list:
        if not i.isdecimal():
            return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    for j in id_list:
        obj = Project.objects.filter(id=int(j))
        if obj:
            obj.delete()
    return JsonResponse(code_msg=GlobalStatusCode.success())
Exemplo n.º 26
0
def lead_swagger(request):
    """
    导入swagger接口信息
    :param request:
    :return:
    """
    project_id = request.POST.get("project_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    url = request.POST.get("url")
    obi = Project.objects.filter(id=project_id)
    if obi:
        try:
            swagger_api(url, project_id, request.user)
            return JsonResponse(code_msg=GlobalStatusCode.success())
        except:
            return JsonResponse(code_msg=GlobalStatusCode.fail())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 27
0
def group(request):
    """
    接口分组
    project_id 项目ID
    :return:
    """
    project_id = request.GET.get("project_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())

    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = ApiGroupLevelFirst.objects.filter(
            project=project_id).order_by("id")
        serialize = ApiGroupLevelFirstSerializer(obi, many=True)
        return JsonResponse(data=serialize.data,
                            code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 28
0
def download(request):
    """
    获取Api下载文档路径
    project_id  项目ID
    :param request:
    :return:
    """
    project_id = request.GET.get("project_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        data = ApiInfoDocSerializer(
            ApiGroupLevelFirst.objects.filter(project=project_id),
            many=True).data
        url = Write().write_api(str(obj[0]), data)
        return JsonResponse(code_msg=GlobalStatusCode.success(), data=url)
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
Exemplo n.º 29
0
def add_project(request):
    """
    新增项目
    name: 项目名称
    v: 项目版本
    type: 项目类型
    description: 项目描述
    :return:
    """
    name = request.POST.get("name")
    version = request.POST.get("v")
    _type = request.POST.get("type")
    description = request.POST.get("description")

    if _type in ["Web", "App"]:
        obj = Project.objects.filter(name=name)
        if len(obj) == 0:
            with transaction.atomic():
                project = Project(name=name,
                                  version=version,
                                  type=_type,
                                  description=description,
                                  user=User.objects.get(id=request.user.pk))
                project.save()
                ProjectMember(
                    permissionType="admin",
                    project=Project.objects.get(id=project.pk),
                    user=User.objects.get(id=request.user.pk)).save()
                record = ProjectDynamic(
                    project=Project.objects.get(id=project.pk),
                    type="创建",
                    operationObject="项目",
                    user=User.objects.get(id=request.user.pk),
                    description="创建项目“%s”" % name)
                record.save()
            return JsonResponse(data={"project_id": project.pk},
                                code_msg=GlobalStatusCode.success())

        else:
            return JsonResponse(code_msg=GlobalStatusCode.name_repetition())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
Exemplo n.º 30
0
def add_project(request):
    """
    新增项目
    name: 项目名称
    v: 项目版本
    type: 项目类型
    description: 项目描述
    :return:
    """
    name = request.POST.get('name')
    version = request.POST.get('v')
    _type = request.POST.get('type')
    description = request.POST.get('description')

    if _type in ['Web', 'App']:
        obj = Project.objects.filter(name=name)
        if len(obj) == 0:
            with transaction.atomic():
                project = Project(name=name,
                                  version=version,
                                  type=_type,
                                  description=description,
                                  user=User.objects.get(id=request.user.pk))
                project.save()
                ProjectMember(
                    permissionType='admin',
                    project=Project.objects.get(id=project.pk),
                    user=User.objects.get(id=request.user.pk)).save()
                record = ProjectDynamic(
                    project=Project.objects.get(id=project.pk),
                    type='创建',
                    operationObject='项目',
                    user=User.objects.get(id=request.user.pk),
                    description='创建项目“%s”' % name)
                record.save()
            return JsonResponse(data={'project_id': project.pk},
                                code_msg=GlobalStatusCode.success())

        else:
            return JsonResponse(code_msg=GlobalStatusCode.name_repetition())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())