def user_address(request, address_id=None): token = request.headers.get('token') token = Token.objects.filter(token=token) if token.exists(): if request.method == 'POST': try: user = token[0].user info = loads(request.body.decode('utf-8')) a = Address(user=user, address=info['address'], building_number=info['buildingNumber'], post_code=info['postCode'], lat=info['lat'], long=info['long']) a.save() return my_response(True, 'success', a.to_json()) except Exception as e: return my_response(False, 'error in insert Address, ' + str(e), {}) if request.method == 'DELETE': Address.objects.filter(address_id=address_id).delete() return my_response(True, 'success', {}) else: return my_response(False, 'invalid method', {}) else: return my_response(False, 'invalid token', {})
def test_cannot_create_addres_required_fields(client): address_data = {} address = Address(**address_data) with pytest.raises( ValidationError, match="['city', 'state_province', 'country', 'public_area_desc', 'number']", ): address.validate()
def save_addresses(profile): """ Save address data. Order matters. """ address1 = Address( name="Tertiary", street="4194 Dayton Rd", city="Madison", state="OH", zip_code="44057", address_profile=profile ) address1.save() address2 = Address( name="Secondary", street="232 S. Hartley St.", city="York", state="PA", zip_code="17404", address_profile=profile, ) address2.save() address3 = Address( name="Main", street="1401 Glenmeadows Dr", city="Round Rock", state="TX", zip_code="78681", address_profile=profile, ) address3.save() return address1, address2, address3
def test_can_create_address_without_zip_code(client): address_data = { "city": "São Carlos", "state_province": "SP", "country": "Brazil", "public_area_desc": "Av Lapena", "number": "877", } address = Address(**address_data) address.validate() assert address.to_json() == json.dumps(address_data)
def get(self, args): user = self.user task = args.get('task') if task not in (1, 2, 3): return UserVerifyInfo.TASK_ERROR.value if task == 1: if user.family_id is None: return False family = Family.find_by_id(user.family_id) if family.run_total < 1: return False return True if task == 2: result = ChildPhoto.find_by_uid(user.uid) if result is None: return False return True if task == 3: result = Address.find_by_uid(user.uid) if result is None: return False return True
def create_address(cls, data=None): address_data = { "city": "São Carlos", "state_province": "SP", "country": "Brazil", "zip_code": "14801180", "public_area_desc": "Av Lapena", "number": "877", } address_data.update(**data or {}) return Address(**address_data)
def test_get_address_from_postcode_single(self): address = Address() address.uprn = "123456" address.address_line_1 = "Dataland Village Main Street" address.postcode = "AA111ZZ" address.point = Point(float("-1.83356713993623"), float("55.4168769443259"), srid=4326) address.save() found_address = get_address_from_postcode('AA111ZZ') self.assertIsNotNone(found_address) self.assertEqual(found_address[0].uprn, '123456')
def post(self, args): name = args.get('name') phone = args.get('phone') city = args.get('city') detailed_address = args.get('detailed_address') if not all([name, phone, city, detailed_address]): return UserVerifyInfo.ADDRESS_ERROR.value # 先判断加入家庭,家庭task_stage, user = self.user # 分析参数,前端传过来的是 city:北京,北京市,昌平 city = args.get('city') if isinstance(city, str): if city.count(',') != 2: args['city'] = '' args['district'] = '' else: _, city, district = city.split(',') args['city'] = city args['district'] = district if user.family_id is None: return UserVerifyInfo.TASK_UNDONE.value family = Family.find_by_id(user.family_id) if family.task_stage < 1: return UserVerifyInfo.TASK_UNDONE.value child_photo = ChildPhoto.find_by_uid(user.uid) if not child_photo: return UserVerifyInfo.TASK_UNDONE_2.value address = Address.find_by_uid(user.uid) if address: return UserVerifyInfo.REPETITION_ADDRESS.value address = Address.add(uid=user.uid, **args) return address_schema.dump(address).data
def temperature(): # todo: add authentication, and validations to this route data = request.form result = { 'city': 'Address not found', 'temp': '', } # Save logs log = Log(search=json.dumps(data)) save_model(log) # validate required field if 'address' in data and data['address']: # Get geo geometry = get_geometry_locations(data['address']) if len(geometry) >= 2: result['city'] = geometry['city'] # Check if was already added to the database cached = Address.query.filter_by( geo=json.dumps(geometry['geo'])).first() if cached: # set cached values result['temp'] = cached.temperature # Assume the temperature for a Zipcode does not vary within 1-hour window if is_cache_invalid(cached): # if not valid, update it # I choose using lat, lng because some searche (ex: brazil) do not have zipcode temp = get_temperature_by_geometry(geometry['geo']) result['temp'] = "{0}° C".format(round(temp['temp'])) # Update model temperature cached.temperature = result['temp'] cached.updated = datetime.datetime.utcnow() save_model(cached) else: temp = get_temperature_by_geometry(geometry['geo']) result['temp'] = "{0}° C".format(round(temp['temp'])) # Todo: encapsulate it address_model = Address( address=result['city'], geo=json.dumps(geometry['geo']), temperature=result['temp'], ) save_model(address_model) else: return "address required parameter not found in form data", 400 return jsonify(result)
def save(self, request): newBook = Booking() newBook.customer = request.user newBook.payment_type = request.POST.get("payment_type") newBook.price = request.POST.get("price") newBook.total_distance = request.POST.get("total_distance") newBook.save() self.validated_data['book_id'] = newBook.id pickupAddress = Address() pickupAddress.title = request.POST.get("pickup_address_title") pickupAddress.description = request.POST.get( "pickup_address_description") pickupAddress.longitude = request.POST.get("pickup_address_longitude") pickupAddress.latitude = request.POST.get("pickup_address_latitude") pickupAddress.is_pickup_loc = True pickupAddress.booking = newBook pickupAddress.save() arrivalAddress = Address() arrivalAddress.title = request.POST.get("arrival_address_title") arrivalAddress.description = request.POST.get( "arrival_address_description") arrivalAddress.longitude = request.POST.get( "arrival_address_longitude") arrivalAddress.latitude = request.POST.get("arrival_address_latitude") arrivalAddress.is_arrival_loc = True arrivalAddress.booking = newBook arrivalAddress.save() # find nearest userInfo # nearestDriverUserInfo = findNearestDriver(latitude=pickupAddress.latitude , longitude=pickupAddress.longitude , filterMaxDistance=10000) # newBook.driver = nearestDriverUserInfo.user return newBook
def get(self): user = self.user address = Address.find_by_uid(user.uid) return address_schema.dump(address).data
def process_row(self, row): print(row) try: address = Address.objects.get(uprn=row[0]) except Address.DoesNotExist: address = Address() address.uprn = row[0] address.address_line_1 = row[2] address.address_line_2 = row[3] address.address_line_3 = row[4] address.city = row[5] address.county = row[6] address.postcode = row[7].strip().replace(' ', '').upper() address.country_code = row[8] address.point = Point(float(row[10]), float(row[9]), srid=4326) try: address.save() except Exception as e: print('Could not add: {0}'.format(row))