Exemple #1
0
 def update_address(self, request, pk=None):
     s = AddressSerializer(data=request.data, many=False)
     s.is_valid(raise_exception=True)
     u = Address.objects.filter(user=request.user).first()
     if u == None:
         s.create(s.validated_data)
     else:
         s.save(address=u.address)
     return Response(status=200)
Exemple #2
0
    def post(self, request, format=None):
        data = JSONParser().parse(request)
        lat, lon = geo.getAddressData(data["address"])
        if lat == None or lon == None:
            return Response(serializer.errors, status=404)
        data["latitude"] = round(lat, 8)
        data["longitude"] = round(lon, 8)
        elevation = geo.getElevation(lat, lon)
        if elevation == None:
            return Response(serializer.errors, status=404)
        data["elevation"] = round(elevation, 2)

        serializer = AddressSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=201)
        return Response(serializer.errors, status=400)
Exemple #3
0
    def test_address_serializer_create_object(self):
        json_payload = """
            {
                "uprn": "12345678",
                "address_line_1": "Dataland",
                "address_line_2": "Dataland Village Main Street",
                "city": "Dataland City",
                "county": "Cucumberland",
                "postcode": "AA11 1ZZ",
                "country_code": "GB",
                "point": {
                    "type": "Point",
                    "coordinates": [55.4168769443259, -1.83356713993623]
                },
                "srid": 4326
            }
        """

        data = json.loads(json_payload)
        serializer = AddressSerializer(data=data)
        self.assertTrue(serializer.is_valid())

        serializer.save()
        self.assertEqual(Address.objects.count(), 1)