コード例 #1
0
ファイル: service.py プロジェクト: nyu-devops-team/customers
    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
コード例 #2
0
    def get(self):
        """query and get the intersection of the queries.
        if there is no given query return all the list
        Args:
            **par: parameter of query
            empty equry

        return:
            1. the intersection of the parameters
            2. empty equry will return all the data
        """
        app.logger.info('Query a Customer with query')
        app.logger.info('Queries are: {}'.format(
            request.args.items().__str__()))
        username = request.args.get('username')
        address = request.args.get('address')

        if username:
            # Query customers by name
            app.logger.info('Filtering by username:%s', username)
            results = Customer.find_by_name(username)

            message = [customer.serialize() for customer in results]
            return_code = status.HTTP_200_OK
        elif address:
            # Query customers by name
            app.logger.info('Filtering by username:%s', username)
            results = Customer.find_by_address(address)

            message = [customer.serialize() for customer in results]
            return_code = status.HTTP_200_OK

        elif request.args:
            # Query customers by query
            #key = request.args.keys()
            app.logger.info('Filtering by query:%s', request.args.keys())
            results = Customer.find_by(kwargs=request.args)
            #results = Customer.find_by_query({key:request.args.get(key)})
            message = [customer.serialize() for customer in results]
            return_code = status.HTTP_200_OK
        else:
            # List all customers.
            results = Customer.all()
            message = [customer.serialize() for customer in results]
            return_code = status.HTTP_200_OK
        return message, return_code
コード例 #3
0
 def test_find_by_address(self):
     """ Find a Customer by address """
     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_address(address="42, Wallaby Way, Sydney, 'Straya")
     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)