def create_suppliers(): """ 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") supplier = Supplier() supplier.deserialize(request.get_json()) supplier.create() message = supplier.serialize() location_url = url_for("get_suppliers", supplier_id=supplier.id, _external=True) return make_response( jsonify(message), status.HTTP_201_CREATED, {"Location": location_url} )
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') supplier = Supplier() app.logger.debug('Payload = %s', api.payload) supplier.deserialize(api.payload) supplier.create() 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 }
def test_serialize_a_supplier(self): """ Serialize a Supplier """ supplier = Supplier("supplier1", 2, True, [1, 2, 3], 8.5) supplier.id = 1 data = supplier.serialize() self.assertNotEqual(data, None) self.assertIn('_id', data) self.assertEqual(data['_id'], 1) self.assertIn('name', data) self.assertEqual(data['name'], "supplier1") self.assertIn('like_count', data) self.assertEqual(data['like_count'], 2) self.assertIn('is_active', data) self.assertEqual(data['is_active'], True) self.assertIn('products', data) self.assertEqual(data['products'], [1, 2, 3]) self.assertIn('rating', data) self.assertEqual(data['rating'], 8.5)
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 }