def test_crud(self): with self.app_context(): StoreModel("COSTCO").save_to_db #save COSTCO to the database in order to deal with foreigner key item = ItemModel("cookies", 19.98, 1) #test the foreign key self.assertIsNone(ItemModel.find_by_name("cookies")) item.save_to_db() self.assertIsNotNone(ItemModel.find_by_name("cookies")) item.delete_from_db() self.assertIsNone(ItemModel.find_by_name("cookies"))
def get(self, name): item=ItemModel.find_by_name(name) if item: return item.json() #item is an object and we have to return a dictionary return{'message':'item not found'},404
def delete(self, name): item = ItemModel.find_by_name(name) if item: item.delete_from_db() return {"message": "The item is deleted"}
def put(self, name): data = Item.parser.parse_args() item = ItemModel.find_by_name(name) if item is None: try: item = ItemModel(name, **data) except: { 'message': 'An error occurred attempting to insert the item into the database' }, 500 # Internal Server Error else: try: item.price = data['price'] item.store_id = data['store_id'] except: { 'message': 'An error occurred attempting to update the item in the database' }, 500 # Internal Server Error item.save_to_db() return item.json()
def delete(self, name): item = ItemModel.find_by_name(name) if item: item.delete_from_db() return {'message': 'item deleted'} return {'message': 'Item not found.'},404
def post(self): """ Add new item POST /item """ # use of request parser to validate the request body parser = reqparse.RequestParser() parser.add_argument('product_price', type=float, required=True, help="Product Price couldn't be blank") parser.add_argument('product_name', type=str, required=True, help="Product Name couldn't be blank") parser.add_argument('store_id', type=int, required=True, help="Store Id couldn't be blank") data = parser.parse_args() price = data['product_price'] name = data['product_name'] store_id = data['store_id'] exist = ItemModel.find_by_name(name) if exist: return {"message": "Product Already Exist!"}, 409 item = ItemModel(name, price, store_id) item.save_to_db() return item.json(), 201
def delete(self, name): item = ItemModel.find_by_name(name) if item: item.delte_from_db() return {'message': 'deleted item {}'.format(item.name)} else: return {'message': 'Item not found'}
def get(self, name): item = ItemModel.find_by_name(name) if item: return item.json() return {"message": "Item not found"}, 404
def test_put_update_item(self): with self.app() as client: with self.app_context(): StoreModel("Costco").save_to_db() ItemModel("ham", 18.29, 1).save_to_db() response = client.put("/item/ham", data={"price": 17.55, "store_id": 1}) self.assertEqual(response.status_code, 200) self.assertEqual(ItemModel.find_by_name("ham").price, 17.55)
def get(self, name): item = ItemModel.find_by_name(name) if (item): return item.json() else: return {'message': 'Item not found'}, 404
def get(self, name): try: item = ItemModel.find_by_name(name) except: {'message': 'An error occurred attempting to retrieve the item from the database.'}, 500 # Internal Server Error if item: return item.json() return {'message': 'Item not found'}, 404 # Not found
def put(self, name): data = Item.parser.parse_args() item = ItemModel.find_by_name(name) if item: item.price = data['price'] else: item = ItemModel(name, **data) item.save_to_db() return item.json()
def put(self, name): data = Item.parser.parse_args() item = ItemModel.find_by_name(name) if item is None: item = ItemModel(name, data['price']) else: item.price = data['price'] item.save_to_DB() return item.json()
def delete(self, name): claims = get_jwt_claims() if not claims['is_admin']: return {'message': 'Admin privileges required for this operation'} item = ItemModel.find_by_name(name) if item: item.delte_from_db() return {'message': 'deleted item {}'.format(item.name)} else: return {'message': 'Item not found'}
def delete(self, name): claims = get_jwt() if not claims['is_admin']: return {'message': 'Admin privilege required.'}, 401 item = ItemModel.find_by_name(name) if item: item.delete_from_db() return {'message': 'item deleted'} return {'message': 'Item not found.'}
def test_create_item(self): with self.app() as client: with self.app_context(): StoreModel("Costco").save_to_db() #ItemModel("ham", 18.29, 1).save_to_db() response = client.post("/item/ham", data={"price": 17.55, "store_id": 1}) # dont need authorization anymore self.assertEqual(response.status_code, 201) self.assertEqual(ItemModel.find_by_name('ham').price, 17.55) self.assertDictEqual({"name": "ham", "price": 17.55}, json.loads(response.data))
def get(self, name): """ Get item details GET /item/<string:name> """ # use params from the end point selected_item = ItemModel.find_by_name(name) if selected_item: return selected_item.json(), 200 return {"message": "No Item Found!"}, 404
def post(self, name): #data=Item.parser.parse_args() if (ItemModel.find_by_name(name)): return {'message':"item '{}'is already present".format(name)},400 data1=Item.parser.parse_args() item1=ItemModel(name,**data1) try: item1.save_to_db() except: return{'message':'an error occured while insering the item'},500 return {'item':item1.json() },201
def put(self, name): # parsing required arguments only instead of entire json data = Item.parser.parse_args() # data = request.get_json() item = ItemModel.find_by_name(name) if (item): item.price = data['price'] else: item = ItemModel(name, data['price'], data['store_id']) item.save_to_db() return item.json()
def put(self, name): data = Item.parser.parse_args() if ItemModel.find_by_name(name) is None: item = ItemModel(name, data['price'], data['store_id']) else: item.price = data['price'] item.store_id = data['store_id'] item.save_to_db() return item.json(), 400
def post(self,name): if ItemModel.find_by_name(name): return {'message': "An item with name '{}' already exists.".format(name)}, 400 data = Item.parser.parse_args() item = ItemModel(name, data['price'], data['store_id']) try: item.save_to_db() except: return {'message': 'An error occurred inserting the item'}, 500 #Internal Server Error return item.json(), 201
def post(self, name): if ItemModel.find_by_name(name): return {'message': "An item with name '{}' already exists.".format(name)}, 400 # Bad Request data = Item.parser.parse_args() item = ItemModel(name, data['price']) try: item.insert() except: return {'message': 'An error occurred inserting the item into the database.'}, 500 # Internal Server Error return item.json(), 201 # Created
def put(self, name): request_data = Item.parser.parse_args() item = ItemModel.find_by_name( name) #next(filter(lambda x: x['name'] == name, items),None) if item is None: item = ItemModel( name, ** request_data) #request_data['price'], request_data['store_id'] else: item.price = request_data['price'] item.save_db() return item.json()
def post(self, name): if ItemModel.find_by_name(name): return {"message": "the item already exists"}, 400 data = Item.parser.parse_args() item = ItemModel(name, **data) try: item.save_to_db() except: {"message": "error in inserting the item"}, 500 return item.json(), 201
def delete(self): """ Delete Item DELETE /item?name=<string:item_name> """ # use query params data = request.args name = str(data['name']) selected_product = ItemModel.find_by_name(name) if selected_product: selected_product.delete() return {"message": "Product Removed!"}, 200 return {"message": "No Product Found!"}, 404
def post(self, name): if ItemModel.find_by_name(name): return { "message": "An item with name {} already exists.".format(name) }, 400 data = Item.parser.parse_args() item = ItemModel(name, data['price'], data['store_id']) try: item.save_to_db() except: return {"message": "An error occured inserting the item!"}, 500 return item.json(), 201
def delete(self, name): # connection = sqlite3.connect('data.db') # cursor = connection.cursor() # query = "DELETE FROM {table} WHERE name=?".format(table=self.TABLE_NAME) # cursor.execute(query, (name,)) # connection.commit() # connection.close() # return {'message': 'Item deleted'} item = ItemModel.find_by_name(name) if item: item.delete_fromdb() return {'message': 'Item deleted'}
def post(self, name): if ItemModel.find_by_name(name): return { 'Message': 'the item {} is already exist.'.format(name) }, 400 request_data = Item.parser.parse_args( ) #request.get_json(silent = True) item = ItemModel( name, **request_data) #request_data['price'], request_data['store_id'] try: item.save_db() except: return {"message": "An error occured inserting the item."}, 500 return item.json(), 201
def post(self, name): if ItemModel.find_by_name(name): return { 'Message': "Item '{}' already present in store".format(name) }, 400 else: data = Item.parser.parse_args( ) #get_json(force=true) does not require content type new_item = ItemModel(name, **data) try: new_item.save_to_db() except: return { "message": "An error occured while inserting item" }, 500 return new_item.json(), 201
def post(self, name): if (ItemModel.find_by_name(name)): return { 'message': "Item with name {} already exists".format(name) }, 400 data = Item.parser.parse_args() new_item = ItemModel(name, data['price'], data['store_id']) try: new_item.save_to_db() except: return {'message': 'Error inserting item'}, 500 return new_item.json(), 201