Exemple #1
0
 def post(self):
     """
     Creates a supplier
     This endpoint will create a supplier based the data in the body that is posted
     """
     app.logger.info('Request to Create a supplier')
     check_content_type('application/json')
     data = request.get_json()
     if not isinstance(data, dict):
         data = json.loads(data)
     try:
         data['supplierName']
     except KeyError as error:
         raise DataValidationError('Invalid supplier: missing ' +
                                   error.args[0])
     except TypeError as error:
         raise DataValidationError(
             'Invalid supplier: body of request contained'
             'bad or no data')
     supplier = Supplier(**data)
     supplier.save()
     app.logger.debug('Payload = %s', api.payload)
     app.logger.info('supplier with new id [%s] saved!', supplier.id)
     location_url = api.url_for(SupplierResource,
                                supplier_id=supplier.id,
                                _external=True)
     return json.loads(supplier.to_json()), status.HTTP_201_CREATED, {
         'Location': location_url
     }
Exemple #2
0
 def test_find_supplier(self):
     """ Find a Supplier by id """
     Supplier("supplier1", 2, True, [1, 2, 3], 8.5).save()
     # saved_supplier = Supplier("kitty", "cat").save()
     saved_supplier = Supplier("supplier1", 2, True, [1, 2, 3], 8.5)
     saved_supplier.save()
     supplier = Supplier.find(saved_supplier.id)
     self.assertIsNot(supplier, None)
     self.assertEqual(supplier.id, saved_supplier.id)
     self.assertEqual(supplier.name, "supplier1")
Exemple #3
0
 def test_add_a_supplier(self):
     """ Test create a supplier and add it to the database """
     suppliers = Supplier.all()
     self.assertEqual(len(suppliers), 0)
     supplier = Supplier(supplierName="Walmart",
                         address="NYC",
                         averageRating=5,
                         productIdList=['1', '2', '3'])
     self.assertTrue(supplier != None)
     self.assertEqual(supplier.id, None)
     supplier.save()
     # Asert that it was assigned an id and shows up in the database
     # self.assertEqual(supplier.id, 1)
     suppliers = Supplier.all()
     self.assertEqual(len(suppliers), 1)
     self.assertNotEqual(supplier.id, None)
Exemple #4
0
 def test_add_a_supplier(self):
     """ Create a supplier and add it to the database """
     suppliers = Supplier.all()
     self.assertEqual(suppliers, [])
     supplier = Supplier("supplier1", 2, True, [1, 2, 3], 8.5)
     self.assertNotEqual(supplier, None)
     self.assertEqual(supplier.id, None)
     supplier.save()
     # Asert that it was assigned an id and shows up in the database
     self.assertNotEqual(supplier.id, None)
     suppliers = Supplier.all()
     self.assertEqual(len(suppliers), 1)
     self.assertEqual(suppliers[0].name, "supplier1")
     self.assertEqual(suppliers[0].like_count, 2)
     self.assertEqual(suppliers[0].is_active, True)
     self.assertEqual(suppliers[0].products, [1, 2, 3])
     self.assertEqual(suppliers[0].rating, 8.5)
Exemple #5
0
 def test_update_a_supplier(self):
     """ Test update a supplier """
     supplier = Supplier(supplierName="Walmart",
                         address="NYC",
                         averageRating=5,
                         productIdList=['1', '2', '3'])
     supplier.save()
     self.assertNotEqual(supplier.id, None)
     old_id = supplier.id
     # Change it an save it
     supplier.supplierName = "Costco"
     supplier.save()
     self.assertEqual(supplier.id, old_id)
     # Fetch it back and make sure the id hasn't changed
     # but the data did change
     suppliers = Supplier.all()
     self.assertEqual(len(suppliers), 1)
     self.assertEqual(suppliers[0].supplierName, "Costco")
Exemple #6
0
    def post(self):
        """
        Creates a Supplier
        This endpoint will create a Supplier based the data in the body that is posted
        """
        app.logger.info('Request to Create a Supplier...')

        # Check for form submission data
        if request.headers.get(
                'Content-Type') == 'application/x-www-form-urlencoded':
            app.logger.info('Getting data from form submit')
            data = {
                "name": request.form['name'],
                "like_count": request.form['like_count'],
                "is_active": request.form['is_active'],
                "products": request.form['products'],
                "rating": request.form['rating']
            }
        else:
            check_content_type('application/json')
            app.logger.info('Getting json data from API call')
            data = request.get_json()
            # Data type transfer
            data = data_type_transfer(data)

        app.logger.info(data)
        supplier = Supplier()
        supplier.deserialize(data)
        supplier.save()
        app.logger.info('Supplier with new id [%s] saved!', supplier.id)
        location_url = api.url_for(SupplierResource,
                                   supplier_id=supplier.id,
                                   _external=True)
        return supplier.serialize(), status.HTTP_201_CREATED, {
            'Location': location_url
        }
Exemple #7
0
def data_load(payload):
    """ Loads a Supplier into the database """
    supplier = Supplier(payload['name'], payload['category'],
                        payload['preferred'])
    supplier.save()