Example #1
0
 def create(self, request, *args, **kargs):
     serializer = FeedSerializer(data=request.data)
     if serializer.is_valid():
         feed = serializer.save()
         return response_gen(data=FeedSerializer(feed).data, message="success")
     else:
         return response_gen(errorCode=status.HTTP_400_BAD_REQUEST, message='invalid data')
Example #2
0
 def log_out(self, request):
     try:
         refresh_token = request.data["refresh_token"]
         token = RefreshToken(refresh_token)
         token.blacklist()
         return response_gen(status=status.HTTP_205_RESET_CONTENT)
     except Exception as err:
         return response_gen(status=status.HTTP_400_BAD_REQUEST)
Example #3
0
 def update(self, request, *args, **kargs):
     feed_uuid = request.data.pop('uuid')
     feed = Feed.objects.get(uuid= feed_uuid)
     serializer = FeedSerializer(feed, request.data)
     if serializer.is_valid():
         serializer.save()
         return response_gen(data= serializer.data)
     else:
         return response_gen(status=400, message='INVALID DATA')
Example #4
0
 def create(self, request, *args, **kargs):
     
     serializer = FarmCreateSerializer(data=request.data, context={
                                 'exclude': ['created_at']})
     if serializer.is_valid():
         farm = serializer.save()
         user_farm = UserFarm(
             farm=farm, user=request.user.profile, role=UserRole.OWNER)
         user_farm.save()
         return response_gen(data=FarmSerializer(farm).data, message="success")
     else:
         return response_gen(errorCode=status.HTTP_400_BAD_REQUEST, message='invalid data')
Example #5
0
    def update(self, request, *args, **kargs):
        data = request.data.dict()
        print(data)
        if data.get("id"):
            data.pop("id")
        if data.get("uuid"):
            data.pop("id")

        profile = request.user.profile
        serializer = self.serializer_class(instance=profile, data=data)
        if serializer.is_valid():
            serializer.save()
        else:
            return response_gen(message=str(serializer.errors),
                                status=status.HTTP_406_NOT_ACCEPTABLE)
        return response_gen(data=serializer.data)
Example #6
0
def field_get(request: Request, *args, **kargs):
    uuid = request.query_params.get('uuid')
    field = Field.objects.get(uuid=uuid)
    if is_field_related(request.user, field):
        data = FieldSerializer(field).data
    else:
        raise PermissionDenied()
    return response_gen(data=data)
Example #7
0
 def read(self, request, *args, **kargs):
     url_name = resolve(request.path_info).url_name
     if url_name == 'read_farm':
         many = False
         query_set = self.get_object_or_404()
     elif url_name == 'matrix_farm':
         many = True
         query_set = self.get_queryset()
     return response_gen(data=FarmSerializer(query_set, many=many).data)
Example #8
0
def irrigation_get(request, *args, **kwargs):
    uuid = request.query_params.get('uuid')

    irrigation = Irrigation.objects.get(uuid=uuid)

    if not is_irrigation_related(request.user, irrigation):
        raise exceptions.PermissionDenied()
    data = IrrigationSerializer(irrigation).data

    return response_gen(data=data)
Example #9
0
def fields_list(request: Request, *args, **kargs):
    farm_uuid = request.data.get('farm_uuid')
    farm = Farm.objects.get(uuid=farm_uuid)

    if not is_farm_related(request.user, farm): raise PermissionDenied()

    fields = farm.field_farm.all()
    serializer = FieldSerializer(fields, many=True)

    data = serializer.data
    return response_gen(data=data)
Example #10
0
def field_create(request, *args, **kargs):
    data = request.data

    data['farm'] = Farm.objects.get(uuid=data['farm'])

    if not is_farm_related(request.user, data['farm']):
        raise PermissionDenied()

    serializer = FieldSerializer(data=data)

    if serializer.is_valid(raise_exception=True):
        field = serializer.save()

    return response_gen(FieldSerializer(field).data)
Example #11
0
def field_toggle(request, *args, **kargs):
    try:
        data = request.data
        relay = data.get('relay')
        field: Field = Field.objects.get(uuid=data.get('uuid', None))
        farm: Farm = field.farm

        if not is_field_related(request.user, field): raise PermissionDenied()

        if farm.auto_mode:
            data = field.latest_data()
            crop: Crop = field.current_crop()
            if crop:
                suggest = crop.suggest(data)
                if not suggest ^ relay:
                    field.toggle_relay(data.get('relay'))
        else:
            field.toggle_relay(data.get('relay'))

        data = FieldSerializer(field).data
        return response_gen(data)
    except Exception as exception:
        print(exception)
        return response_gen(data='Fail')
Example #12
0
def irrigation_matrix(request, *args, **kwargs):
    field_uuid = request.data.get('field_uuid', None)
    field = Field.objects.filter(uuid=field_uuid).first()
    crop_uuid = request.data.get('crop_uuid', None)
    crop = Crop.objects.filter(uuid=crop_uuid).first()

    if field and not is_field_related(request.user, field):
        raise exceptions.PermissionDenied()
    if crop and not is_crop_related(request.user, crop):
        raise exceptions.PermissionDenied()
    data = {
        'crop': crop,
        'field': field,
    }

    qs = IrrigationFilter(data=data, queryset=Irrigation.objects.all()).qs
    qs = qs.order_by('-created_at')

    data = IrrigationSerializer(qs, many=True).data

    return response_gen(data)
Example #13
0
 def update(self, request, *args, **kargs):
     serializer = self.serializer_class()
     user = serializer.update(request.user, validated_data=request.data)
     return response_gen(data=self.serializer_class(user).data)
Example #14
0
 def get(self, request, *args, **kargs):
     uuid = request.query_params.get('uuid', None)
     feed = Feed.objects.get(uuid = uuid)
     return response_gen(data = FeedSerializer(feed).data)
Example #15
0
 def list(self, request, *args, **kargs):
     farm_uuid = request.data.pop('farm_uuid')
     feeds = Feed.objects.filter(farm__uuid = farm_uuid)
     return response_gen(data = FeedSerializer(feeds,many = True).data)
Example #16
0
    def list(self, request, *args, **kargs):
        qs = Production.objects.all()
        
        data = ProductionSerializer(qs, many = True).data

        return response_gen(data = data)
Example #17
0
    def get(self, request, *args, **kwargs):
        product_uid = request.query_params.get('uuid')
        
        product = Production.objects.get(uuid = product_uid)

        return response_gen(data= ProductionSerializer(product).data)
Example #18
0
def check_access_token(request, *args, **kargs):
    return response_gen()
Example #19
0
 def post(self, request, *args, **kwargs):
     data = super().post(request, *args, **kwargs).data
     return response_gen(data=data)
Example #20
0
 def retrieve(self, request, *args, **kargs):
     return response_gen(data=self.serializer_class(request.user).data)
Example #21
0
 def create(self, request, *args, **kargs):
     user = User.objects.create_user(**request.data)
     return response_gen(data=self.serializer_class(user).data)
Example #22
0
 def delete(self, request, *args, **kargs):
     request.user.delete()
     return response_gen()
Example #23
0
 def post(self, request, *args, **kwargs):
     resp = super().post(request, *args, **kwargs)
     return response_gen(data=resp.data, status=resp.status_code)
Example #24
0
 def post(self, request, *args, **kwargs):
     raise Exception("hello")
     resp = super().post(request, *args, **kwargs)
     return response_gen(data=resp.data, status=resp.status_code)