def test_crud_create_read_multiple_json(self): with self.app_context(): itm1 = ItemModel("2", "U00000001", "Details of an order 😂") itm2 = ItemModel(3, "U00000002", "Details of an order") # Field 'id' is assigned at write to the db itm1.save_to_db() self.assertEqual(itm1.id, 1) itm2.save_to_db() self.assertEqual(itm2.id, 2) found_itm2 = ItemModel.find_all_by_order_uuid(2) found_itm3 = ItemModel.find_all_by_order_uuid(3) # order_id is not written to json expected_json2 = { "id": 1, "user_id": "U00000001", "details": "Details of an order 😂" } expected_json3 = { "id": 2, "user_id": "U00000002", "details": "Details of an order" } self.assertEqual(len(found_itm2), 1) self.assertEqual(len(found_itm3), 1) self.assertDictEqual(found_itm2[0].json(), expected_json2) self.assertDictEqual(found_itm3[0].json(), expected_json3)
def post(self, name): if ItemModel.getItem(name): return {"message": "item already exists"}, 400 data = Item.parser.parse_args() item = ItemModel(name, data['price'], data['store_id']) item.save_to_db() return item.json(), 201
def put(self, name): data = Item.parser.parse_args() item = ItemModel.getItem(name) if item 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()
def test_crud_create_read_query_uuid_type(self): # Check if query method can handel uuid of both types with self.app_context(): itm = ItemModel(3, "U00000002", "Details of an order") itm.save_to_db() found_item_str = ItemModel.find_by_order_uuid_and_user_id( order_uuid="3", user_id="U00000002")[0] found_item_int = ItemModel.find_by_order_uuid_and_user_id( order_uuid=3, user_id="U00000002")[0] self.assertEquals(found_item_int.order_id, found_item_str.order_id)
def put(self, name): payload = ItemController.parser.parse_args() item = ItemModel.find_by_name(name) if item is None: item = ItemModel(name, **payload) else: item.price = payload.get('price') item.save_to_db() return item.json()
def put(self, name): data = Item.parser.parse_args() item = ItemModel.find_by_name(name) if not item: item = ItemModel(name, **data) else: item.price = data["price"] item.save_to_db() return item.json()
def test_json_with_id(self): with self.app_context(): itm = ItemModel(4, "U00000004", "Details of an order") itm.save_to_db() jsonres = itm.json() expected_json = { "id": 1, "user_id": "U00000004", "details": "Details of an order" } self.assertDictEqual(jsonres, expected_json)
def post(self, name): if ItemModel.find_by_name(name): return {"message":f"An item with name {name} already exists."}, 400 # 400: something wrong with the request data = Item.parser.parse_args() item = ItemModel(name, **data) try: item.save_to_db() except Exception as e: return {"message":"An error occurred inserting the item."}, 500 # 500: internal server error return item.json(), 201
def put(self, name): req = Item.parser.parse_args() i = ItemModel.get_item_by_name(name) if i is None: i = ItemModel(name, req['price']) else: i.price = req['price'] i.save_to_db() return i.json(), 201
def post(self, name): if ItemModel.find_by_name(name): return {"message": "An item with the name {} already exists".format(name)}, 400 payload = ItemController.parser.parse_args() item = ItemModel(name, **payload) try: item.save_to_db() except: return {"message": "An error ocurred while inserting the item"}, 500 return item.json(), 201
def put(self, name): data_request = Item.parser.parse_args() item = ItemModel.find_by_name(name) # updated_item = ItemModel(name, data_request["price"]) if not item: item = ItemModel(name=name, **data_request) else: item.price = data_request["price"] item.save_to_db() return item.json()
def put(self, name): data = request.get_json() try: data_json = ItemPostSchema().load(data) except ValidationError as err: return err.messages item = ItemModel.find_by_name(name) if item: item.price = data_json["price"] item.store_id = data_json["store_id"] else: item = ItemModel(name, data_json["price"], data_json["store_id"]) item.save_to_db() return {"message": "item was succesfully created/updated"}, 201
def put(self, name, category, unit): data = Item.parser.parse_args() item = ItemModel.find_by_name(name) if item is None: item = ItemModel(name, **data) else: item.category = data['category'] item.unit = data['unit'] item.save_to_db() return item.json
def post(self, name): if ItemModel.get_item_by_name(name): return {'Message': "Item '{}' already exists".format(name)}, 400 req = Item.parser.parse_args() i = ItemModel(name, req['price']) try: i.save_to_db() except: return { "message": "An error occurred." }, 500 # code for internal error return i.json(), 201
def post(self, name): if ItemModel.find_by_name(name): return { "message": f" An item with name, {name} is already exist in database" }, 400 data_request = Item.parser.parse_args() updated_item = ItemModel(name, **data_request) try: updated_item.save_to_db() except: return {"message": " An error occurred inserting the item"} return updated_item.json(), 201
def post(self, name, category, unit): if ItemModel.find_by_name(name): return { 'message': "An item with name '{}' already exists.".format(name) } data = ItemModel.parser.parse_args() item = ItemModel(name, **data) try: item.save_to_db() except: return {"message": "An error occure inserting the item."}, 500 return item.json(), 201
def test_crud_create_read_delete(self): with self.app_context(): itm = ItemModel("0001", "U00000000", "Details of an order") self.assertListEqual( ItemModel.find_by_order_uuid_and_user_id(order_uuid="1", user_id="U00000000"), []) itm.save_to_db() self.assertEqual( len( ItemModel.find_by_order_uuid_and_user_id( order_uuid="1", user_id="U00000000")), 1) itm.delete_from_db() self.assertListEqual( ItemModel.find_by_order_uuid_and_user_id(order_uuid="1", user_id="U00000000"), [])
def post(self, name): data = request.get_json() try: data_json = ItemPostSchema().load(data) except ValidationError as err: return err.messages if ItemModel.find_by_name(name): return ( { "message": "An item with name '{}' already exists.".format( name ) }, 404, ) else: item = ItemModel(name, data_json["price"], data_json["store_id"]) item.save_to_db() return item.json(), 201
def put(self, name): """Modify item :note: MOdify price if item is exists otherwise, insert item :param name: item name :type name: str :return: [item name and item type] :rtype: [JSON] """ data = Item.parser.parse_args() 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(), 201
def post(self, name): """Insert specific itme :endpoints: /item/<item name> :status: if item exists return 400 :param name: item name :type name: str :return: item name and item price :rtype: JSON """ item = ItemModel.find_by_name(name) if item: return {"Message": f"{name} is already exists !"}, 400 data = Item.parser.parse_args() new_item = ItemModel(name, data['price'], data['store_id']) new_item.save_to_db() return new_item.json(), 201
def test_crud_create_read_delete_multi(self): with self.app_context(): itm = ItemModel("2", "U00000001", "Details of an order 😂") self.assertListEqual( ItemModel.find_by_order_uuid_and_user_id(order_uuid="2", user_id="U00000001"), []) itm.save_to_db() self.assertEqual( len( ItemModel.find_by_order_uuid_and_user_id( order_uuid="2", user_id="U00000001")), 1) found_item = ItemModel.find_by_order_uuid_and_user_id( order_uuid="2", user_id="U00000001")[0] self.assertEqual(found_item.order_id, 2) self.assertEqual(found_item.user_id, "U00000001") self.assertEqual(found_item.details, "Details of an order 😂") itm.delete_from_db() self.assertListEqual( ItemModel.find_by_order_uuid_and_user_id(order_uuid="2", user_id="U00000001"), [])