def post(self, request, organization):
        """
        Create a saved query
        """
        if not features.has(
                'organizations:discover', organization, actor=request.user):
            return self.respond(status=404)

        serializer = DiscoverSavedQuerySerializer(data=request.DATA,
                                                  context={
                                                      'organization':
                                                      organization,
                                                  })

        if not serializer.is_valid():
            return Response(serializer.errors, status=400)

        data = serializer.object

        model = DiscoverSavedQuery.objects.create(
            organization=organization,
            name=data['name'],
            query=data['query'],
            created_by=request.user
            if request.user.is_authenticated() else None,
        )

        model.set_projects(data['project_ids'])

        return Response(serialize(model), status=201)
예제 #2
0
    def put(self, request, organization, query_id):
        """
        Modify a saved query
        """
        if not features.has(
                'organizations:discover', organization, actor=request.user):
            return self.respond(status=404)

        try:
            model = DiscoverSavedQuery.objects.get(id=query_id,
                                                   organization=organization)
        except DiscoverSavedQuery.DoesNotExist:
            raise ResourceDoesNotExist

        serializer = DiscoverSavedQuerySerializer(data=request.DATA,
                                                  context={
                                                      'organization':
                                                      organization,
                                                  })

        if not serializer.is_valid():
            return Response(serializer.errors, status=400)

        data = serializer.object

        model.update(
            organization=organization,
            name=data['name'],
            query=data['query'],
        )

        model.set_projects(data['project_ids'])

        return Response(serialize(model), status=200)
    def post(self, request, organization):
        """
        Create a saved query
        """
        if not features.has('organizations:discover', organization, actor=request.user):
            return self.respond(status=404)

        serializer = DiscoverSavedQuerySerializer(data=request.DATA, context={
            'organization': organization,
        })

        if not serializer.is_valid():
            return Response(serializer.errors, status=400)

        data = serializer.object

        model = DiscoverSavedQuery.objects.create(
            organization=organization,
            name=data['name'],
            query=data['query'],
            created_by=request.user if request.user.is_authenticated() else None,
        )

        model.set_projects(data['project_ids'])

        return Response(serialize(model), status=201)
예제 #4
0
    def post(self, request, organization):
        """
        Create a saved query
        """
        if not features.has(
                "organizations:discover", organization, actor=request.user):
            return self.respond(status=404)

        serializer = DiscoverSavedQuerySerializer(
            data=request.data, context={"organization": organization})

        if not serializer.is_valid():
            return Response(serializer.errors, status=400)

        data = serializer.validated_data

        model = DiscoverSavedQuery.objects.create(
            organization=organization,
            name=data["name"],
            query=data["query"],
            created_by=request.user
            if request.user.is_authenticated() else None,
        )

        model.set_projects(data["project_ids"])

        return Response(serialize(model), status=201)
    def put(self, request, organization, query_id):
        """
        Modify a saved query
        """
        if not features.has('organizations:discover', organization, actor=request.user):
            return self.respond(status=404)

        try:
            model = DiscoverSavedQuery.objects.get(id=query_id, organization=organization)
        except DiscoverSavedQuery.DoesNotExist:
            raise ResourceDoesNotExist

        serializer = DiscoverSavedQuerySerializer(data=request.DATA, context={
            'organization': organization,
        })

        if not serializer.is_valid():
            return Response(serializer.errors, status=400)

        data = serializer.object

        model.update(
            organization=organization,
            name=data['name'],
            query=data['query'],
        )

        model.set_projects(data['project_ids'])

        return Response(serialize(model), status=200)
예제 #6
0
    def put(self, request, organization, query_id):
        """
        Modify a saved query
        """
        if not features.has(
                "organizations:discover", organization, actor=request.user):
            return self.respond(status=404)

        try:
            model = DiscoverSavedQuery.objects.get(id=query_id,
                                                   organization=organization)
        except DiscoverSavedQuery.DoesNotExist:
            raise ResourceDoesNotExist

        serializer = DiscoverSavedQuerySerializer(
            data=request.data, context={"organization": organization})

        if not serializer.is_valid():
            return Response(serializer.errors, status=400)

        data = serializer.validated_data

        model.update(organization=organization,
                     name=data["name"],
                     query=data["query"])

        model.set_projects(data["project_ids"])

        return Response(serialize(model), status=200)
예제 #7
0
파일: widget.py 프로젝트: getsentry/sentry
 def validate(self, data):
     super(WidgetDataSourceSerializer, self).validate(data)
     if data['type'] == WidgetDataSourceTypes.DISCOVER_SAVED_SEARCH:
         serializer = DiscoverSavedQuerySerializer(data=data['data'], context=self.context)
         if not serializer.is_valid():
             raise ValidationError('Error validating DiscoverSavedQuery: %s' % serializer.errors)
     else:
         raise ValidationError('Widget data source type %s not recognized.' % data['type'])
     return data
예제 #8
0
 def validate(self, data):
     super(WidgetDataSourceSerializer, self).validate(data)
     if data["type"] == WidgetDataSourceTypes.DISCOVER_SAVED_SEARCH:
         serializer = DiscoverSavedQuerySerializer(data=data["data"],
                                                   context=self.context)
         if not serializer.is_valid():
             raise ValidationError(
                 "Error validating DiscoverSavedQuery: %s" %
                 serializer.errors)
     else:
         raise ValidationError(
             "Widget data source type %s not recognized." % data["type"])
     return data