Example #1
0
 def post(self, name):
     if ItemModel.get_item(name):
         return {'message': f"item '{name}' already exists"}, 400
     price = ItemResource.parser.parse_args()['price']
     item = ItemModel(name=name, price=price)
     item.add_item()
     return {'name': name, 'price': price}, 201
Example #2
0
 def post():
     new_items = []
     items = ItemList.parser.parse_args()['items']
     if items:
         for item in items:
             abort_if_item_exist(item['name'])
             store_id = item['store_id']
             if StoreModel.query.filter_by(id=store_id).all():
                 try:
                     price = int(item['price'])
                 except:
                     return abort(404,
                                  message='price parameter must be integer')
             else:
                 abort(404,
                       message="store with id={} doesn't exist".format(
                           store_id))
         for item in items:
             new_item = {
                 'name': item['name'],
                 'price': item['price'],
                 'store_id': item['store_id']
             }
             new_item = ItemModel(**new_item)
             new_item.add_item()
             new_items.append(new_item.json())
         return {'new_items': new_items}, 201
     return {"message": "items list mustn't be empty"}, 404
Example #3
0
    def post(self, name):
        # item = next(iter(filter(lambda x: x['name'] == name , items)), None)
        # if item :
        if ItemModel.find_by_name(name):
            return {
                'message': "An Item with name '{}'already exists".format(name)
            }, 400  #bad requesr

    # if next(iter(filter(lambda x: x['name'] == name , items)), None):
        # data = request.get_json()
        data = Item.parser.parse_args()
        item = {'name': name, 'price': data['price']}
        # items.append(item)

        # connection = sqlite3.connect('data.db')
        # cursor = connection.cursor()

        # query = "INSERT INTO items VALUES ( ?, ?)"
        # cursor.execute(query , (item['name'], item['price']))

        # connection.commit()
        # connection.close()
        try:
            ItemModel.insert(item)
        except:
            return {
                'message': "An error accured inserting the item"
            }, 500  #internal server error

        return item, 201  #item create
Example #4
0
 def post(name):
     abort_if_item_exist(name)
     price = Item.parser.parse_args()['price']
     try:
         price = int(price)
         new_item = {'name': name, 'price': price}
         new_item = ItemModel(**new_item)
         new_item.add_item()
         return {'new_item': new_item.json()}, 201
     except:
         abort(404, message='price parameter must be integer')
Example #5
0
    def post(self):
        data = parser.parse_args()
        item_name = data["item_name"]
        restaurant_name = data["restaurant_name"]
        restaurant = RestaurantModel.find_by_restaurant_name(restaurant_name)
        item = ItemModel(item_name, restaurant.id)

        try:
            item.save_to_db()
        except:
            return {"message": "An error occurred saving the item."}, 500

        return item.json(), 201
Example #6
0
    def post(self):
        items = ItemListResource.parser.parse_args()['items']
        errors = []
        for item in items:
            if ItemModel.get_item(item['name']):
                errors.append(item['name'])
        if errors:
            return {'message': f'{errors} already exist'}, 400

        for item in items:
            new_item = ItemModel(name=item['name'], price=item['price'])
            new_item.add_item()
        return {'items': items}, 201
Example #7
0
    def post(self, name):
        data = Item.parser.parse_args()
        item = ItemModel.find_by_name(name)
        if item:
            return "An item with the name {} already exists".format(name)

        new_item = {
            "name": name,
            "price": data['price'],
            "store_id": data['store_id']
        }
        item = ItemModel(name, **data)
        item.save_to_db()
        return new_item
Example #8
0
    def post(self):
        items = ItemListResource.parser.parse_args()['items']
        bad_item_names = []
        for item in items:
            existing_item = ItemModel.get_item(item['name'])
            if existing_item:
                bad_item_names.append(existing_item.name)
        if bad_item_names:
            return {'message': f"items '{bad_item_names}' already exist"}, 400

        for item in items:
            new_item = ItemModel(name=item.name, price=item['price'])
            new_item.add_item()
        return {'items': items}, 201
Example #9
0
    def put(self, name):
        data = Item.parser.parse_args()
        item = ItemModel.find_by_name(name)

        if item is None:
            item = ItemModel(name, **data)
            item.save_to_db()
        else:
            item.price = data['price']
            item.save_to_db()
        return item.json()
Example #10
0
 def get(self, name):
     item = ItemModel.find_by_name(name)
     if item:
         return item.json(), 200
     return {
         "error": f"couldn't find item '{name}'"
     }, 404  # Return status code 404: page not found
Example #11
0
 def get(self, name):
     """Retrieve information"""
     # item = next(filter(lambda x: x['name'] == name, items), None)
     item = ItemModel.find_by_name(name)
     if item:
         return item.json()
     return {'message': 'item not found!'}, 400
Example #12
0
 def post(name):
     abort_if_item_exist(name)
     price = Item.parser.parse_args()['price']
     store_id = Item.parser.parse_args()['store_id']
     if StoreModel.query.filter_by(id=store_id).all():
         try:
             price = int(price)
             new_item = {'name': name, 'price': price, 'store_id': store_id}
             new_item = ItemModel(**new_item)
             new_item.add_item()
             return {'new_item': new_item.json()}, 201
         except:
             abort(404, message='price parameter must be integer')
     else:
         abort(404,
               message="store with id={} doesn't exist".format(store_id))
Example #13
0
 def delete(self, name):
     item = ItemModel.find_by_name(name)
     if item:
         item.delete_from_db()
         return {"message": "Item has been deleted"}
     else:
         return {"message": "items does not exist"}
Example #14
0
    def put(self, _id):

        # Verify current user is authorized on this route

        if not session.get('check'):
            return 401

        else:
            req = request.get_json(silent=True)

            name, price, desc = (req[i] for i in req)
            item = ItemModel.query.get(_id)

        # Creates new item if none exists

        if not item:
            new_item = ItemModel(name, price, description)
            db.session.add(new_item)

        else:
            # Create item dict
            item.name = name
            item.price = price
            item.description = description

        # Commit changes to postgres

        db.session.commit()

        return {'msg': f'Item {item.name} was successfully updated.'}, 201
Example #15
0
 def delete(self, name):
     item = ItemModel.find_by_name(name)
     if item:
         item.delete_from_db()
         return {'message': f"item with name '{name}' deleted"}, 200
     else:
         return {'Message': f"item with name '{name}' not exists."}, 400
Example #16
0
 def delete(self, name):
     item = ItemModel.find_by_name(name)
     if item:
         item.remove_to_db()
         return {"message": "Item removed from database"}
     else:
         return {"message": "Such an item doesn't exist in database"}
Example #17
0
 def put(self, name):
     request_item_price = Item.parser.parse_args()
     item = ItemModel.find_by_name(name)
     if item:
         updated_item = ItemModel(name, **request_item_price)
         try:
             updated_item.save()
             return item.json()
         except:
             return {"massage": "updating item {} was not successful".format(name)}, 500
     else:
         try:
             item = ItemModel(name, **request_item_price)
             item.save()
             return item.json()
         except:
             return {"massage": "inserting item {} was not successful".format(name)}, 500
Example #18
0
 def get(self):
     items = ItemModel.get_items()
     return {
         'items': [{
             'name': item.name,
             'price': item.price
         } for item in items]
     }
Example #19
0
 def post():
     new_items = []
     items = ItemList.parser.parse_args()['items']
     if items:
         for item in items:
             abort_if_item_exist(item['name'])
             try:
                 price = int(item['price'])
             except:
                 return abort(404,
                              message='price parameter must be integer')
         for item in items:
             new_item = {'name': item['name'], 'price': item['price']}
             new_item = ItemModel(**new_item)
             new_item.add_item()
             new_items.append(new_item.json())
         return {'new_items': new_items}, 201
     return {"message": "items list mustn't be empty"}, 404
Example #20
0
    def get(self, name):
        # parser = reqparse.RequestParser()
        # parser.add_argument('name',type=str,required=True,help="Name is required")
        # parser.add_argument('price',type=float,required=True,help="Price is required")
        item = ItemModel.find_item_name(name)

        if item:
            return item.json()
        return ({'message': "Item not found"}, 404)
Example #21
0
 def delete(self, name):
     # claims = get_jwt_claims()
     # 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.'}, 404
Example #22
0
 def get(self, id):
     try:
         item = ItemModel.get_by_id(id)
         if item:
             return {"item": item.json()}, 200
         else:
             return {"message": "Item not found!"}, 404
     except BaseException as e:
         return self.return_error(e)
Example #23
0
    def delete(self, name):
        #global items
        #items = list(filter(lambda x: x['name'] != name, items))
        isItemFound = ItemModel.getitemname(name)

        if isItemFound:
            isItemFound.delete_from_db()

        return {'message': 'Requested item deleted'}
Example #24
0
    def get(self, name):
        #item_list = next(filter(lambda x: x['name'] == name, items), None) # iter is not required above python 3

        #getting items from DB
        item = ItemModel.getitemname(name)
        if item:
            return item.json(), 200

        return {'message': "No item found"}, 404
Example #25
0
 def get(self):
     user_id = get_jwt_identity()
     items = [item.json() for item in ItemModel.find_all()]
     if user_id:
         return {"items": items}, 200
     return {
         'items': [item['name'] for item in items],
         'message': "more data available if you log in."
     }, 200
Example #26
0
 def put(self, name):
     price = ItemResource.parser.parse_args()['price']
     if not ItemModel.get_item(name):
         item = ItemModel(name=name, price=price)
         item.add_item()
         return {'name': name, 'price': price}, 201
     ItemModel.change_item(name, price)
     return {'name': name, 'price': price}, 200
Example #27
0
    def put(self):
        requestData = RequestJsonParser.parser.parse_args()
        item = ItemModel.getitemname(requestData['name'])
        #updated_item = {"name": requestData['name'], "price": requestData["price"]}

        if item is None:
            item = ItemModel(**requestData)
        else:
            item.price = requestData["price"]
            item.name = requestData["name"]
            item.store_id = requestData['store_id']

        item.save_to_db()

        return item.json()
Example #28
0
 def delete(self, name):
     item = ItemModel.find_by_name(name)
     if item:
         try:
             item.delete_from_db()
         except Exception as e:
             return {"message": f"Failed with error: {e}"}, 500
         else:
             return {"message": f"{name} deleted."}, 200
     return {"message": f"couldn't find item '{name}'"}, 404
Example #29
0
    def delete(self, name):
        claims = get_jwt_claims()
        if not claims['is_admin']:
            return {'message': "Admin privilege required"}, 401

        item = ItemModel.find_item_by_name(name)
        if item:
            item.delete_from_db()
            return {"message": "item deleted"}
        return {"message": "item NOT found"}
Example #30
0
    def get(self):

        narudzbe = KosaricaUser.count_narudzbe()
        users = UserModel.count_users()
        items = ItemModel.count_items()
        return {
            "broj_narudzbi": narudzbe,
            "broj_korisnika": users,
            "broj_proizvoda": items
        }, 200