def get(self): """ Returns all of the Customers unless a query parameter is specified """ app.logger.info('Request to list Customers...') customers = [] app.logger.info("First time") # args = customer_args.parse_args() # change to request args to by pass the odd bug for reqparse args = request.args app.logger.info("Second time %s", args) if args.get('last_name'): app.logger.info('Filtering by last name: %s', args['last_name']) customers = Customer.find_by_last_name(args['last_name']) elif args.get('first_name'): app.logger.info('Filtering by first name: %s', args['first_name']) customers = Customer.find_by_first_name(args['first_name']) elif args.get('email'): app.logger.info('Filtering by email: %s', args['email']) customers = Customer.find_by_email(args['email']) elif args.get('address'): app.logger.info('Filtering by address: %s', args['address']) customers = Customer.find_by_address(args['address']) elif args.get('active'): app.logger.info('Filtering by active: %s', args['active']) customers = Customer.find_by_active(args['active']) else: customers = Customer.all() results = [customer.serialize() for customer in customers] app.logger.info('[%s] Customers returned', len(results)) return results, status.HTTP_200_OK
def get(self): """ Returns all of the Customers """ app.logger.info('Request for customers list...') customers = [] args = customer_args.parse_args() if args['fname']: app.logger.info('Filtering by first name: %s', args['fname']) customers = Customer.find_by_first_name(args['fname']) elif args['lname']: app.logger.info('Filtering by last name: %s', args['lname']) customers = Customer.find_by_last_name(args['lname']) elif args['city']: app.logger.info('Filtering by city: %s', args['city']) customers = Address.find_by_city(args['city']) elif args['state']: app.logger.info('Filtering by state: %s', args['state']) customers = Address.find_by_state(args['state']) elif args['zip_code']: app.logger.info('Filtering by zip code: %s', args['zip_code']) customers = Address.find_by_zip(args['zip_code']) else: app.logger.info('Getting all customers') customers = Customer.all() results = [cust.serialize() for cust in customers] return results, status.HTTP_200_OK
def test_queries(self): """ Find active/inactive customers with filter """ cust = Customer(first_name="Peter", last_name="Parker", user_id="pparker", password="******", active=True) cust.save() addr = Address(apartment="1R", city="Chicago", state="Illinois", street="6721 5th Ave", zip_code="10030", customer_id=cust.customer_id) addr.save() cust.address_id = addr.id cust.save() """ Find by first name """ cust_fname = Customer.find_by_first_name(cust.first_name) self.assertEqual(cust_fname[0].customer_id, cust.customer_id) """ Find by last name """ cust_lname = Customer.find_by_last_name(cust.last_name) self.assertEqual(cust_lname[0].customer_id, cust.customer_id) """ Find by status """ cust_active = Customer.find_by_status(False) self.assertEqual(len(cust_active), 0) """ Find by city """ cust_city = Address.find_by_city(cust.city) self.assertEqual(cust_city[0].customer_id, cust.customer_id) """ Find by state """ cust_state = Address.find_by_state(cust.state) self.assertEqual(cust_state[0].customer_id, cust.customer_id) """ Find by zip code """ cust_zip = Address.find_zip(cust.zip_code) self.assertEqual(cust_zip[0].customer_id, cust.customer_id)
def test_find_by_first_name(self): """ Find a Customer by First Name """ Customer(firstname="John", lastname="Doe", email="*****@*****.**", subscribed=False, address1="123 Main St", address2="1B", city="New York", country="USA", province="NY", zip="12310").save() Customer(firstname="Sarah", lastname="Sally", email="*****@*****.**", subscribed=False, address1="124 Main St", address2="1E", city="New York", country="USA", province="NY", zip="12310").save() customers = Customer.find_by_first_name("John") self.assertEqual(customers[0].email, "*****@*****.**") self.assertEqual(customers[0].firstname, "John") self.assertEqual(customers[0].lastname, "Doe") self.assertEqual(customers[0].subscribed, False) self.assertEqual(customers[0].address1, "123 Main St") self.assertEqual(customers[0].address2, "1B") self.assertEqual(customers[0].city, "New York") self.assertEqual(customers[0].province, "NY") self.assertEqual(customers[0].country, "USA") self.assertEqual(customers[0].zip, "12310")
def test_find_by_first_name(self): """ Find a Customer by first name """ Customer( first_name="Some", last_name="Dude", email="*****@*****.**", address="House,Street,NotNewYork,GoodChoice", active=True, ).create() Customer( first_name="P", last_name="Sherman", email="*****@*****.**", address="42, Wallaby Way, Sydney, 'Straya", active=False, ).create() customers = Customer.find_by_first_name(first_name="P") self.assertEqual(customers[0].email, "*****@*****.**") self.assertEqual(customers[0].first_name, "P") self.assertEqual(customers[0].last_name, "Sherman") self.assertEqual(customers[0].address, "42, Wallaby Way, Sydney, 'Straya") self.assertEqual(customers[0].active, False)