def get(self, request, schema, metric_name): try: model = get_schema_map()[schema] serializer_cls = find_serializer(model, method='GET') except Exception as e: logger.error(e) raise Http404 metric = get_object_or_404(model, name=metric_name) serializer = serializer_cls(instance=metric) data = serializer.data return Response(data)
def post(self, request, schema): logger.debug('Received metric POST for schema %s' % schema) try: model = get_schema_map()[schema] get_kwargs = self.get_kwargs(model, request) serializer_cls = find_serializer(model, method='POST') except Exception as e: logger.error(e) raise Http404 metric = get_object_or_404(model, **get_kwargs) serialized = serializer_cls(instance=metric, data=request.DATA, context=request.DATA) if serialized.is_valid(): serialized.save() return HttpResponse(status=200) else: logger.error('serialize error: %s' % serialized.errors) return HttpResponse(status=400)