# finish smart / mosq api
This commit is contained in:
parent
5ab7c8faa1
commit
3e2ffed09c
|
@ -1,6 +1,6 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from mosquito.models import Mosquito, MosqPost
|
from mosquito.models import Mosquito, MosqPost
|
||||||
from smart.api.serializers import SmartListSerializer
|
from smart.api.serializers import SmartPushListSerializer
|
||||||
|
|
||||||
|
|
||||||
class MosqListSerializer(serializers.ModelSerializer):
|
class MosqListSerializer(serializers.ModelSerializer):
|
||||||
|
@ -15,15 +15,18 @@ class MosqListSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class MosqPostListSerializer(serializers.ModelSerializer):
|
class MosqPostListSerializer(serializers.ModelSerializer):
|
||||||
|
smart_push = SmartPushListSerializer(read_only=True)
|
||||||
region = serializers.SerializerMethodField()
|
region = serializers.SerializerMethodField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MosqPost
|
model = MosqPost
|
||||||
fields = [
|
fields = [
|
||||||
|
'id',
|
||||||
'mosq',
|
'mosq',
|
||||||
'led',
|
'led',
|
||||||
'energy',
|
'energy',
|
||||||
'region',
|
'region',
|
||||||
|
'smart_push',
|
||||||
'time',
|
'time',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
from django.urls import path, re_path
|
from django.urls import path, re_path
|
||||||
from .views import MosquitoListAPIView
|
from .views import MosquitoListAPIView, MosquitoPostListAPIView
|
||||||
|
|
||||||
|
|
||||||
app_name = 'mosq-api'
|
app_name = 'mosq-api'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', MosquitoListAPIView.as_view(), name='list')
|
path('', MosquitoListAPIView.as_view(), name='list'),
|
||||||
|
path('post/', MosquitoPostListAPIView.as_view(), name='post'),
|
||||||
]
|
]
|
|
@ -7,8 +7,8 @@ from rest_framework.generics import (
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.filters import SearchFilter, OrderingFilter
|
from rest_framework.filters import SearchFilter, OrderingFilter
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from ..models import Mosquito
|
from ..models import Mosquito, MosqPost
|
||||||
from .serializers import MosqListSerializer
|
from .serializers import MosqListSerializer, MosqPostListSerializer
|
||||||
|
|
||||||
|
|
||||||
class MosquitoListAPIView(ListAPIView):
|
class MosquitoListAPIView(ListAPIView):
|
||||||
|
@ -26,3 +26,19 @@ class MosquitoListAPIView(ListAPIView):
|
||||||
Q(region__icontains=query)
|
Q(region__icontains=query)
|
||||||
).distinct()
|
).distinct()
|
||||||
return queryset_list
|
return queryset_list
|
||||||
|
|
||||||
|
|
||||||
|
class MosquitoPostListAPIView(ListAPIView):
|
||||||
|
serializer_class = MosqPostListSerializer
|
||||||
|
filter_backends = [SearchFilter, OrderingFilter]
|
||||||
|
search_fields = ['mosq__name', 'mosq__region']
|
||||||
|
|
||||||
|
def get_queryset(self, *args, **kwargs):
|
||||||
|
queryset_list = MosqPost.objects.all()
|
||||||
|
query = self.request.GET.get('q')
|
||||||
|
if query:
|
||||||
|
queryset_list = queryset_list.filter(
|
||||||
|
Q(mosq__name__contains=query) |
|
||||||
|
Q(mosq__region=query)
|
||||||
|
).distinct()
|
||||||
|
return queryset_list
|
||||||
|
|
|
@ -14,6 +14,7 @@ class SmartListSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class SmartPushListSerializer(serializers.ModelSerializer):
|
class SmartPushListSerializer(serializers.ModelSerializer):
|
||||||
|
smart = serializers.SerializerMethodField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = SmartPush
|
model = SmartPush
|
||||||
|
@ -23,3 +24,6 @@ class SmartPushListSerializer(serializers.ModelSerializer):
|
||||||
'coordinate',
|
'coordinate',
|
||||||
'time',
|
'time',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_smart(self, obj):
|
||||||
|
return obj.smart.name
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from .views import SmartListAPIView
|
from .views import SmartListAPIView, SmartPushListAPIView
|
||||||
|
|
||||||
|
|
||||||
app_name = 'smart-api'
|
app_name = 'smart-api'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', SmartListAPIView.as_view(), name='list')
|
path('', SmartListAPIView.as_view(), name='list'),
|
||||||
|
path('push/', SmartPushListAPIView.as_view(), name='push')
|
||||||
]
|
]
|
|
@ -7,8 +7,8 @@ from rest_framework.generics import (
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.filters import SearchFilter, OrderingFilter
|
from rest_framework.filters import SearchFilter, OrderingFilter
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from .serializers import SmartListSerializer
|
from .serializers import SmartListSerializer, SmartPushListSerializer
|
||||||
from ..models import SmartModule
|
from ..models import SmartModule, SmartPush
|
||||||
|
|
||||||
|
|
||||||
class SmartListAPIView(ListAPIView):
|
class SmartListAPIView(ListAPIView):
|
||||||
|
@ -26,4 +26,21 @@ class SmartListAPIView(ListAPIView):
|
||||||
Q(chip_id__contains=query) |
|
Q(chip_id__contains=query) |
|
||||||
Q(region__icontains=query)
|
Q(region__icontains=query)
|
||||||
).distinct()
|
).distinct()
|
||||||
|
|
||||||
|
return queryset_list
|
||||||
|
|
||||||
|
|
||||||
|
class SmartPushListAPIView(ListAPIView):
|
||||||
|
serializer_class = SmartPushListSerializer
|
||||||
|
filter_backends = [SearchFilter, OrderingFilter]
|
||||||
|
search_fields = ['smart__name']
|
||||||
|
|
||||||
|
def get_queryset(self, *args, **kwargs):
|
||||||
|
queryset_list = SmartPush.objects.all()
|
||||||
|
query = self.request.GET.get('q')
|
||||||
|
if query:
|
||||||
|
queryset_list = queryset_list.filter(
|
||||||
|
Q(smart__name__icontains=query)
|
||||||
|
).distinct()
|
||||||
|
|
||||||
return queryset_list
|
return queryset_list
|
||||||
|
|
|
@ -21,3 +21,7 @@ urlpatterns = [
|
||||||
path('api/mosq/', include('mosquito.api.urls')),
|
path('api/mosq/', include('mosquito.api.urls')),
|
||||||
path('api/smart/', include('smart.api.urls')),
|
path('api/smart/', include('smart.api.urls')),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
urlpatterns += [
|
||||||
|
path('api-auth/', include('rest_framework.urls')),
|
||||||
|
]
|
Loading…
Reference in New Issue