コード例 #1
0
    def post(self, request, format=None):
        """
        :param request:
        :param format:
        :return:
        """
        data = JSONParser().parse(request)

        data['owner'] = self.request.user.pk

        x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
        if x_forwarded_for:
            data['remote_address'] = x_forwarded_for.split(',')[-1].strip()
        else:
            data['remote_address'] = request.META.get(
                'REMOTE_ADDR') + "&" + request.META.get(
                    'HTTP_USER_AGENT') + "&" + request.META.get(
                        'SERVER_PROTOCOL')

        data['channel'] = get_object_or_404(Channel,
                                            api_key=data['api_key']).pk

        debug(data)

        serializer = DataSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
コード例 #2
0
    def post(self, request, api_key, format=None):
        """
        http -a username:password --json POST http://127.0.0.1:8000/api/v1/data/API-KEY/ name_id="123" value="0"
        :param request:
        :param format:
        :return:
        """
        data = JSONParser().parse(request)
        data['owner'] = self.request.user.pk

        x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
        if x_forwarded_for:
            data['remote_address'] = x_forwarded_for.split(',')[-1].strip()
        else:
            data['remote_address'] = request.META.get(
                'REMOTE_ADDR') + "&" + request.META.get(
                    'HTTP_USER_AGENT') + "&" + request.META.get(
                        'SERVER_PROTOCOL')

        name = get_object_or_404(Element, name_id=data['name_id']).channel
        data['channel'] = get_object_or_404(Channel,
                                            api_key=api_key,
                                            name=name).pk

        serializer = DataSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data, status=201)
        return JSONResponse(serializer.errors, status=400)
コード例 #3
0
ファイル: views_api_v1.py プロジェクト: nvmanh/plant
    def post(self, request, format=None):
        """
        :param request:
        :param format:
        :return:
        """
        data = JSONParser().parse(request)

        data['owner'] = self.request.user.pk

        x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
        if x_forwarded_for:
            data['remote_address'] = x_forwarded_for.split(',')[-1].strip()
        else:
            data['remote_address'] = request.META.get('REMOTE_ADDR') + "&" + request.META.get('HTTP_USER_AGENT') + "&" + request.META.get('SERVER_PROTOCOL')

        data['channel'] = get_object_or_404(Channel, api_key=data['api_key']).pk

        debug(data)

        serializer = DataSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
コード例 #4
0
 def put(self, request, pk, format=None):
     datas = self.get_object(pk)
     serializer = DataSerializer(datas, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
コード例 #5
0
ファイル: views_api_v1.py プロジェクト: nvmanh/plant
 def put(self, request, pk, format=None):
     """
     :param request:
     :param pk:
     :param format:
     :return:
     """
     datas = self.get_object(pk)
     serializer = DataSerializer(datas, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
コード例 #6
0
    def get(self, request, format=None):
        project_id = request.GET.get('project')
        if project_id is None:
            return Response({"error": "project parameter is missing"}, 400)

        project = Project.objects.filter(id=project_id).first()
        if project is None:
            return Response({"error": "project=%s not found" % project_id},
                            404)

        data = Data.objects.filter(dataset=project.dataset.id).all()
        ret = []

        label = Label.objects.filter(project=project).all()
        data = DataSerializer(data, many=True)
        label = LabelSerializer(label, many=True)
        label = {x['id']: x for x in label.data}

        for d in data.data:
            datum = {}
            datum['data'] = d
            datum['label'] = label.get(d['id'], None)
            ret.append(datum)

        return Response({"data": ret})
コード例 #7
0
ファイル: views.py プロジェクト: velvet2/server
    def get(self, request, pk, format=None):
        search = request.GET.get('search')
        print(search)
        dataset = self.get_object(pk)
        serializer = DatasetSerializer(dataset)
        serializedData = DataSerializer(Data.objects.filter(dataset=dataset), many=True)

        return Response({"data": serializedData.data})
コード例 #8
0
    def post(self, request, format=None):
        try:
            api_key = request.data['api_key']
            device = get_object_or_404(Device, api_key=api_key, enable=True)
            request.data['device'] = device.pk
            request.data['remote_address'] = ip_address(request)
            serializer = DataSerializer(data=request.data)
            debug(serializer)

            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data,
                                status=status.HTTP_201_CREATED)
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
        except:
            msg_err = {'err': 'API KEY not found!'}
            return Response(msg_err, status=status.HTTP_400_BAD_REQUEST)
コード例 #9
0
 def get(self, request, pk, api_key, format=None):
     """
     :param request:
     :param pk:
     :param format:
     :return:
     """
     datas = self.get_object(request, pk, api_key)
     serializer = DataSerializer(datas)
     return Response(serializer.data)
コード例 #10
0
    def get(self, request, format=None):
        # api_key= request.GET['api_key']
        # device = get_object_or_404(Device, api_key=api_key, enable=True)
        try:
            if request.GET['last']:
                datas = Data.objects.all()[:1]
        except:
            datas = Data.objects.all()

        serializer = DataSerializer(datas, many=True)
        return Response(serializer.data)
コード例 #11
0
ファイル: views.py プロジェクト: danielzengqx/iotdashboard
 def get(self, request, api_key, format=None):
     """
     http --json http://127.0.0.1:8000/api/v1/data/API-KEY/
     http -a username:password --json http://127.0.0.1:8000/api/v1/data/API-KEY/
     :param request:
     :param format:
     :return:
     """
     try:
         datas = Data.objects.filter(owner=request.user, channel=Channel.objects.get(api_key=api_key)).order_by('-pk')[:100]
         serializer = DataSerializer(datas, many=True)
         return Response(serializer.data)
     except:
         raise Http404
コード例 #12
0
 def get(self, request, format=None):
     """
     :param request:
     :param format:
     :return:
     """
     try:
         if request.GET['data'] == 'first':
             datas = Data.objects.order_by('pub_date')[:1]
         elif request.GET['data'] == 'last':
             datas = Data.objects.order_by('-pub_date')[:1]
     except:
         datas = Data.objects.all()
     serializer = DataSerializer(datas, many=True)
     return Response(serializer.data)
コード例 #13
0
    def get(self, request, format=None):
        project_id = request.GET.get('project')
        if project_id is None:
            return Response({"error": "project is missing"}, 400)

        project = Project.objects.filter(id=project_id).first()
        if project is None:
            return Response({"error": "project=%s not found" % project_id},
                            404)

        search = request.GET.get('search')
        encode = request.GET.get('encode', '0')

        if search:
            if encode == '1':
                search = base64.b64decode(search).decode('utf8')
            print(search)
            search = expression.jsep(search).parsed

        datas = Data.objects.filter(dataset=project.dataset).all()
        labels = Label.objects.filter(project=project).all()

        dataSerializers = DataSerializer(datas, many=True)
        lblSerializers = LabelSerializer(labels, many=True)

        response = []
        for d in dataSerializers.data:
            resp = {}
            resp['data'] = d
            for lbl in labels:
                if lbl.dat.id == d['id']:
                    resp['label'] = LabelSerializer(lbl).data
                    break

            response.append(resp)

        if search:
            response = [
                r for r in response
                if expression.applyExpression({"data": r}, search)
            ]

        return Response(response)
コード例 #14
0
 def get(self, request, pk, format=None):
     datas = self.get_object(pk)
     serializer = DataSerializer(datas)
     return Response(serializer.data)
コード例 #15
0
    def get(self, request, dataset_id=None, format=None):
        filt = request.GET.get('search')
        datasets = Data.objects.all()
        serializer = DataSerializer(datasets, many=True)

        return Response({"data": serializer.data})