def post(self, request, dustbin_id):
        dustbin_details = copy.deepcopy(request.data)
        zone = get_zone(dustbin_details['zone_id'])
        if zone is None:
            return Response({'details': "Invalid zone_id"},
                            status=status.HTTP_400_BAD_REQUEST)

        any_dustbin = MDL.Dustbin.objects.all().order_by("-dustbin_id")
        if any_dustbin.exists():
            new_dustbin = get_new_number(any_dustbin[0].dustbin_id, 7)
        else:
            new_dustbin = 'dbn0000001'

        dustbin_details['dustbin_id'] = new_dustbin
        dustbin_details['zone'] = zone.zone_id
        del (dustbin_details['zone_id'])

        try:
            if int(dustbin_details['street_number']) > 20 or int(
                    dustbin_details['street_number']) == 0:  #Hard codded value
                raise ValueError

            serialized_details = self.serializer_class(data=dustbin_details)
            if serialized_details.is_valid():
                serialized_details.save()
                tkn().update_token_history(request.query_params['client_id'],
                                           "ADD", 'Dustbin : ' + new_dustbin)
                return Response({"detail":"New Dustbin details added successfully","Dustbin":dustbin_details['dustbin_id']}, \
                    status = status.HTTP_201_CREATED)
            else:
                raise ValueError
        except (ValueError, KeyError) as error:
            return Response({'street_number':'Positive integers less than 20 are valid','filled_status':'True/1 or False/0 are valid'},\
                status = status.HTTP_400_BAD_REQUEST)
    def patch(self, request, water_tank_id):
        try:
            tank = MDL.Water_tank.objects.get(water_tank_id=water_tank_id)
        except:
            return Response({"detail": "Invalid Water_tank ID."},
                            status=status.HTTP_400_BAD_REQUEST)

        try:
            if int(request.data['filled_percentage']) > 100:
                raise ValueError
            tank.filled_percentage = request.data['filled_percentage']
            tank.save()
            tkn().update_token_history(request.query_params['client_id'],
                                       "UPDATE",
                                       'Water_tank : ' + water_tank_id)
            return self.retrieve(request, water_tank_id)
        except KeyError:
            return Response({"detail": "filled_percentage is None."},
                            status=status.HTTP_400_BAD_REQUEST)
        except ValueError:
            return Response(
                {
                    "filled_percentage":
                    "Only integer values between 0-100 are valid"
                },
                status=status.HTTP_400_BAD_REQUEST)
Beispiel #3
0
	def put(self, request, zone_id, format = None):
		try:
			zone = MDL.Zone.objects.get(zone_id = zone_id)
		except:
			return Response({"detail":"Invalid Zone_id"}, status = status.HTTP_400_BAD_REQUEST)

		try:
			name = request.data["incharge"]
			if not is_valid_name(name):
				raise ValueError("Invalid Name")

			zone.person_incharge = name
			zone.save()
			tkn().update_token_history(request.query_params['client_id'], "UPDATE", 'Zone : ' + zone_id)
			return self.retrieve(request, zone_id)
		except ValueError:
			return Response({"detail" : "Invalid Name."}, status = status.HTTP_400_BAD_REQUEST)
		except KeyError:
			return Response({"detail" : "Incharge name is None."}, status = status.HTTP_400_BAD_REQUEST)
    def post(self, request, water_tank_id):
        water_tank_details = copy.deepcopy(request.data)

        zone = get_zone(water_tank_details['zone_id'])
        if zone is None:
            return Response({'details': "Invalid zone_id"},
                            status=status.HTTP_400_BAD_REQUEST)

        any_water_tank = MDL.Water_tank.objects.all().order_by(
            "-water_tank_id")
        if any_water_tank.exists():
            new_water_tank = get_new_number(any_water_tank[0].water_tank_id, 6)
        else:
            new_water_tank = 'tank000001'

        water_tank_details['water_tank_id'] = new_water_tank
        water_tank_details['zone'] = zone.zone_id
        del (water_tank_details['zone_id'])

        try:
            if int(water_tank_details['street_number']) > 20 or int(
                    water_tank_details['street_number']
            ) == 0:  #Hard codded value
                raise ValueError
            if int(water_tank_details['filled_percentage']) > 100:
                raise ValueError

            serialized_details = self.serializer_class(data=water_tank_details)
            if serialized_details.is_valid():
                serialized_details.save()
                tkn().update_token_history(request.query_params['client_id'],
                                           "ADD",
                                           'Water_tank : ' + new_water_tank)
                return Response({"detail":"New Water Tank details added successfully",'Water_tank':water_tank_details['water_tank_id']}, \
                    status = status.HTTP_201_CREATED)
            else:
                raise ValueError
        except (ValueError, KeyError) as error:
            return Response({'street_number':'Positive integers less than 20 are valid',"filled_percentage":"Integer values between 0-100 are only valid"},\
                 status = status.HTTP_400_BAD_REQUEST)
    def post(self, request, light_no):
        light_details = copy.deepcopy(request.data)
        zone = get_zone(light_details['zone_id'])

        if zone is None:
            return Response({"details": "Invalid zone id"},
                            status=status.HTTP_400_BAD_REQUEST)

        any_light = MDL.Street_light.objects.all().order_by("-light_id")
        if any_light.exists():
            last_light_number = any_light[0].light_id
            new_light_number = get_new_number(last_light_number, 3)
        else:
            new_light_number = 'SL001'

        del (light_details['zone_id'])
        light_details['light_id'] = new_light_number
        light_details['zone'] = zone.zone_id

        try:
            if int(light_details['street_number']) > 20 or int(
                    light_details['street_number']) == 0:  #Hard codded value
                raise ValueError

            serialized_details = SRLZR.Street_light_Serializer(
                data=light_details)
            if serialized_details.is_valid():
                serialized_details.save()
                tkn().update_token_history(request.query_params['client_id'],
                                           'ADD',
                                           'light : ' + new_light_number)
                return Response({"details":"Light added successfully", "light_ID":light_details['light_id']},\
                    status = status.HTTP_201_CREATED)

            else:
                raise ValueError
        except ValueError:
            return Response({"street_number":"Positive integers less than 20 are valid.","live_status":"Valid values: ALIVE, DEAD, SICK"},\
                status = status.HTTP_400_BAD_REQUEST)
    def patch(self, request, light_no):
        try:
            light = MDL.Street_light.objects.get(light_id=light_no)
        except:
            return Response({"detail": "Invalid Street_light ID."},
                            status=status.HTTP_400_BAD_REQUEST)

        try:
            health_status = int(request.data['health'])
            if health_status not in [
                    mh.LIGHT_ALIVE, mh.LIGHT_SICK, mh.LIGHT_DEAD
            ]:
                raise ValueError

            light.health = health_status
            light.running_status = request.data['running_status']

            if health_status == mh.LIGHT_DEAD:
                light.running_status = False

            light.save()
            tkn().update_token_history(request.query_params['client_id'],
                                       'UPDATE', 'light : ' + light_no)
            return self.retrieve(request, light_no)
        except KeyError:
            return Response(
                {"detail": "Health and running_status can't be None."},
                status=status.HTTP_400_BAD_REQUEST)
        except ValueError:
            return Response({"detail": "Invalid Health status"},
                            status=status.HTTP_400_BAD_REQUEST)
        except ValidationError:
            return Response(
                {
                    "detail":
                    "running_status - valid values are True/1 or False/0"
                },
                status=status.HTTP_400_BAD_REQUEST)
    def patch(self, request, dustbin_id):
        try:
            dustbin = MDL.Dustbin.objects.get(dustbin_id=dustbin_id)
        except:
            return Response({"detail": "Invalid Dustbin ID."},
                            status=status.HTTP_400_BAD_REQUEST)

        try:
            dustbin.filled_status = request.data['filled_status']
            dustbin.save()
            tkn().update_token_history(request.query_params['client_id'],
                                       "UPDATE", 'Dustbin : ' + dustbin_id)
            return self.retrieve(request, dustbin_id)
        except KeyError:
            return Response({"detail": "filled_status is None."},
                            status=status.HTTP_400_BAD_REQUEST)
        except ValidationError:
            return Response(
                {
                    "detail":
                    "Valid values for filled_status (True/1 or False/0)"
                },
                status=status.HTTP_400_BAD_REQUEST)
Beispiel #8
0
	def delete(self, request, zone_id):
		tkn().update_token_history(request.query_params['client_id'], "DELETE", 'Zone : ' + zone_id)
		return self.destroy(request, zone_id)
Beispiel #9
0
	def get(self, request, zone_id):
		tkn().update_token_history(request.query_params['client_id'], "GET", 'Zone : ' + zone_id)
		return self.retrieve(request, zone_id)
 def delete(self, request, water_tank_id):
     tkn().update_token_history(request.query_params['client_id'], "DELETE",
                                'Water_tank : ' + water_tank_id)
     return self.destroy(request, water_tank_id)
 def delete(self, request, light_no):
     tkn().update_token_history(request.query_params['client_id'], "DELETE",
                                'light : ' + light_no)
     return self.destroy(request, light_no)
 def delete(self, request, dustbin_id):
     tkn().update_token_history(request.query_params['client_id'], "DELETE",
                                'Dustbin : ' + dustbin_id)
     return self.destroy(request, dustbin_id)
 def get(self, request, dustbin_id):
     tkn().update_token_history(request.query_params['client_id'], "GET",
                                'Dustbin : ' + dustbin_id)
     return self.retrieve(request, dustbin_id)
Beispiel #14
0
	def get(self, request, house_number):
		tkn().update_token_history(request.query_params['client_id'], "GET", 'House : ' + house_number)
		return self.retrieve(request, house_number)
 def get(self, request, water_tank_id):
     tkn().update_token_history(request.query_params['client_id'], "GET",
                                'Water_tank : ' + water_tank_id)
     return self.retrieve(request, water_tank_id)
Beispiel #16
0
	def delete(self, request, house_number):
		tkn().update_token_history(request.query_params['client_id'], "DELETE", 'House : ' + house_number)
		return self.destroy(request, house_number)
 def get(self, request, light_no):
     tkn().update_token_history(request.query_params['client_id'], 'GET',
                                'light : ' + light_no)
     return self.retrieve(request, light_no)