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)
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)
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)
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)
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
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