Exemplo n.º 1
0
    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"))
Exemplo n.º 2
0
 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"}
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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
Exemplo n.º 7
0
 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
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
    def get(self, name):

        item = ItemModel.find_by_name(name)

        if (item):
            return item.json()
        else:
            return {'message': 'Item not found'}, 404
Exemplo n.º 11
0
 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
Exemplo n.º 12
0
 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()
Exemplo n.º 13
0
 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()
Exemplo n.º 14
0
 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'}
Exemplo n.º 15
0
    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.'}
Exemplo n.º 16
0
    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
Exemplo n.º 18
0
 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
Exemplo n.º 19
0
    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()
Exemplo n.º 20
0
    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
Exemplo n.º 21
0
    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
Exemplo n.º 22
0
    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
Exemplo n.º 23
0
    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()
Exemplo n.º 24
0
    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
Exemplo n.º 26
0
    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
Exemplo n.º 27
0
    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'}
Exemplo n.º 28
0
 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
Exemplo n.º 29
0
 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
Exemplo n.º 30
0
    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