UPDATE
This commit is contained in:
+62
-24
@@ -10,6 +10,7 @@ from rest_framework import status
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from config.openapi import build_envelope_serializer, build_response
|
||||
from location_data.models import SoilLocation
|
||||
|
||||
from .models import ParameterUpdateLog, SensorData, SensorDataHistory, SensorParameter
|
||||
@@ -20,6 +21,36 @@ from .serializers import (
|
||||
)
|
||||
|
||||
|
||||
SensorDataEnvelopeSerializer = build_envelope_serializer(
|
||||
"SensorDataEnvelopeSerializer",
|
||||
SensorDataResponseSerializer,
|
||||
)
|
||||
SensorDataValidationErrorSerializer = build_envelope_serializer(
|
||||
"SensorDataValidationErrorSerializer",
|
||||
data_required=False,
|
||||
allow_null=True,
|
||||
)
|
||||
SensorDataNotFoundSerializer = build_envelope_serializer(
|
||||
"SensorDataNotFoundSerializer",
|
||||
data_required=False,
|
||||
allow_null=True,
|
||||
)
|
||||
SensorParameterResponseSerializer = build_envelope_serializer(
|
||||
"SensorParameterEnvelopeSerializer",
|
||||
inline_serializer(
|
||||
name="SensorParameterPayloadSerializer",
|
||||
fields={
|
||||
"id": drf_serializers.IntegerField(),
|
||||
"code": drf_serializers.CharField(),
|
||||
"name_fa": drf_serializers.CharField(),
|
||||
"unit": drf_serializers.CharField(),
|
||||
"created_at": drf_serializers.DateTimeField(),
|
||||
"action": drf_serializers.CharField(),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
class SensorDataUpdateView(APIView):
|
||||
"""
|
||||
آپدیت داده سنسور. هنگام آپدیت، نسخه فعلی در SensorDataHistory ذخیره میشود.
|
||||
@@ -31,9 +62,18 @@ class SensorDataUpdateView(APIView):
|
||||
description="داده سنسور را بر اساس uuid_sensor آپدیت (یا ایجاد) میکند. نسخه قبلی در تاریخچه ذخیره میشود.",
|
||||
request=SensorDataUpdateSerializer,
|
||||
responses={
|
||||
200: SensorDataResponseSerializer,
|
||||
400: OpenApiResponse(description="داده نامعتبر"),
|
||||
404: OpenApiResponse(description="location_id یافت نشد"),
|
||||
200: build_response(
|
||||
SensorDataEnvelopeSerializer,
|
||||
"داده سنسور با موفقیت ایجاد یا بهروزرسانی شد.",
|
||||
),
|
||||
400: build_response(
|
||||
SensorDataValidationErrorSerializer,
|
||||
"داده ورودی نامعتبر است.",
|
||||
),
|
||||
404: build_response(
|
||||
SensorDataNotFoundSerializer,
|
||||
"location_id یافت نشد.",
|
||||
),
|
||||
},
|
||||
examples=[
|
||||
OpenApiExample(
|
||||
@@ -61,9 +101,18 @@ class SensorDataUpdateView(APIView):
|
||||
description="فقط فیلدهای ارسالشده آپدیت میشوند.",
|
||||
request=SensorDataUpdateSerializer,
|
||||
responses={
|
||||
200: SensorDataResponseSerializer,
|
||||
400: OpenApiResponse(description="داده نامعتبر"),
|
||||
404: OpenApiResponse(description="location_id یافت نشد"),
|
||||
200: build_response(
|
||||
SensorDataEnvelopeSerializer,
|
||||
"داده سنسور با موفقیت بهروزرسانی شد.",
|
||||
),
|
||||
400: build_response(
|
||||
SensorDataValidationErrorSerializer,
|
||||
"داده ورودی نامعتبر است.",
|
||||
),
|
||||
404: build_response(
|
||||
SensorDataNotFoundSerializer,
|
||||
"location_id یافت نشد.",
|
||||
),
|
||||
},
|
||||
)
|
||||
def patch(self, request, uuid_sensor):
|
||||
@@ -137,25 +186,14 @@ class SensorParameterCreateView(APIView):
|
||||
description="پارامتر جدید اضافه یا پارامتر موجود را ویرایش میکند و در لاگ ثبت میشود.",
|
||||
request=SensorParameterSerializer,
|
||||
responses={
|
||||
201: inline_serializer(
|
||||
name="SensorParameterResponse",
|
||||
fields={
|
||||
"code": drf_serializers.IntegerField(),
|
||||
"msg": drf_serializers.CharField(),
|
||||
"data": inline_serializer(
|
||||
name="SensorParameterData",
|
||||
fields={
|
||||
"id": drf_serializers.IntegerField(),
|
||||
"code": drf_serializers.CharField(),
|
||||
"name_fa": drf_serializers.CharField(),
|
||||
"unit": drf_serializers.CharField(),
|
||||
"created_at": drf_serializers.DateTimeField(),
|
||||
"action": drf_serializers.CharField(),
|
||||
},
|
||||
),
|
||||
},
|
||||
201: build_response(
|
||||
SensorParameterResponseSerializer,
|
||||
"پارامتر سنسور با موفقیت ایجاد یا ویرایش شد.",
|
||||
),
|
||||
400: build_response(
|
||||
SensorDataValidationErrorSerializer,
|
||||
"داده ورودی نامعتبر است.",
|
||||
),
|
||||
400: OpenApiResponse(description="داده نامعتبر"),
|
||||
},
|
||||
examples=[
|
||||
OpenApiExample(
|
||||
|
||||
Reference in New Issue
Block a user