Example #1
0
 def post(self, request, *args, **kwargs):
     serializer = AppPostInfoSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     data = serializer.data
     group_info = group_service.add_group(self.team, self.region_name,
                                          data["app_name"],
                                          data.get("app_note"))
     re = AppBaseInfoSerializer(group_info)
     return Response(re.data, status=status.HTTP_201_CREATED)
Example #2
0
class ListAppsView(TeamAPIView):
    @swagger_auto_schema(
        operation_description="团队应用列表",
        manual_parameters=[
            openapi.Parameter("query", openapi.IN_QUERY, description="搜索查询应用名称,团队名称", type=openapi.TYPE_STRING),
        ],
        responses={200: AppBaseInfoSerializer(many=True)},
        tags=['openapi-apps'],
    )
    def get(self, req, *args, **kwargs):
        query = req.GET.get("query", None)
        apps = group_service.get_apps_list(team_id=self.team.tenant_id, region_name=self.region_name, query=query)
        re = AppBaseInfoSerializer(apps, many=True)
        return Response(re.data, status=status.HTTP_200_OK)

    @swagger_auto_schema(
        operation_description="创建应用",
        request_body=AppPostInfoSerializer(),
        responses={200: AppBaseInfoSerializer()},
        tags=['openapi-apps'],
    )
    def post(self, request, *args, **kwargs):
        serializer = AppPostInfoSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        data = serializer.data
        group_info = group_service.create_app(
            self.team,
            self.region_name,
            data["app_name"],
            data.get("app_note"),
            self.user.get_username(),
        )
        re = AppBaseInfoSerializer(group_info)
        return Response(re.data, status=status.HTTP_201_CREATED)
Example #3
0
 def post(self, request, *args, **kwargs):
     serializer = AppPostInfoSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     data = serializer.data
     logger.info(data["team_alias"])
     tenant = team_services.get_tenant_by_tenant_name(data["team_alias"])
     if not tenant:
         raise serializers.ValidationError("指定租户不存在")
     if not region_services.verify_team_region(
             team_name=data["team_alias"], region_name=data["region_name"]):
         raise serializers.ValidationError("指定数据中心租户未开通")
     code, msg, group_info = group_service.add_group(
         tenant, data["region_name"], data["app_name"])
     if not group_info:
         return Response(FailSerializer({"msg": msg}).data, status=code)
     re = AppBaseInfoSerializer(group_info)
     return Response(re.data, status=status.HTTP_201_CREATED)
Example #4
0
class ListAppsView(ListAPIView):
    @swagger_auto_schema(
        operation_description="应用列表",
        manual_parameters=[
            openapi.Parameter("team_alias",
                              openapi.IN_QUERY,
                              description="团名唯一别名",
                              type=openapi.TYPE_STRING),
            openapi.Parameter("region_name",
                              openapi.IN_QUERY,
                              description="数据中心唯一名称",
                              type=openapi.TYPE_STRING),
            openapi.Parameter("query",
                              openapi.IN_QUERY,
                              description="搜索查询应用名称,团队名称",
                              type=openapi.TYPE_STRING),
        ],
        responses={200: AppBaseInfoSerializer(many=True)},
        tags=['openapi-apps'],
    )
    def get(self, req, *args, **kwargs):
        team_alias = req.GET.get("team_alias", None)
        team = None
        if team_alias:
            team = team_services.get_team_by_team_alias(team_alias)
        region_name = req.GET.get("region_name", None)
        query = req.GET.get("query", None)
        apps = group_service.get_apps_list(
            team_id=team.tenant_id if team else None,
            region_name=region_name,
            query=query)
        re = AppBaseInfoSerializer(apps, many=True)
        return Response(re.data, status=status.HTTP_200_OK)

    @swagger_auto_schema(
        operation_description="创建应用",
        request_body=AppPostInfoSerializer(),
        responses={200: AppBaseInfoSerializer()},
        tags=['openapi-apps'],
    )
    def post(self, request, *args, **kwargs):
        serializer = AppPostInfoSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        data = serializer.data
        logger.info(data["team_alias"])
        tenant = team_services.get_tenant_by_tenant_name(data["team_alias"])
        if not tenant:
            raise serializers.ValidationError("指定租户不存在")
        if not region_services.verify_team_region(
                team_name=data["team_alias"], region_name=data["region_name"]):
            raise serializers.ValidationError("指定数据中心租户未开通")
        code, msg, group_info = group_service.add_group(
            tenant, data["region_name"], data["app_name"])
        if not group_info:
            return Response(FailSerializer({"msg": msg}).data, status=code)
        re = AppBaseInfoSerializer(group_info)
        return Response(re.data, status=status.HTTP_201_CREATED)