コード例 #1
0
    def delete(self, session):
        """deletes object from database"""
        db_object = session.query(CategoryTable).filter_by(
            name=self.name).one()

        if self.created_by == db_object.created_by:
            session.delete(db_object)
            ItemModel.delete_category_group(db_object.id, session)
            session.commit()
        else:
            """does not process deletion if created_by is changed"""
            self.errors = 'Only ' + db_object.created_by + ' can delete'
        return self
コード例 #2
0
ファイル: items.py プロジェクト: btyy77c/python_flask
 def update(self, form_data):
     """Updates an item and returns a json object with the item values"""
     try:
         """form includes user_token, which is used to get user email"""
         user = UserModel(form_data['user_token'])
         form_data['created_by'] = user.email
         item = ItemModel(form_data).update(self.db_session)
     except exc.IntegrityError as e:
         self.db_session.rollback()
         item = ItemModel({'errors': 'Error Updating Item'})
     finally:
         self.db_session.close()
     return jsonify(item.attributes())
コード例 #3
0
ファイル: categories.py プロジェクト: btyy77c/python_flask
    def index(self):
        """Queries categories and items, then renders index view"""
        categories = CategoryModel.all(self.db_session)
        items = ItemModel.latest(self.db_session)
        self.db_session.close()

        return render_template(
            'categories/index.html', categories=categories, items=items
        )
コード例 #4
0
ファイル: items.py プロジェクト: btyy77c/python_flask
    def show(self, title, headers):
        """Queries single item. Returns html or json view"""
        item = ItemModel.find(self.db_session, title)
        self.db_session.close()

        if headers == 'application/json':
            return jsonify(item.attributes())
        else:
            categories = CategoryModel.all(self.db_session)
            return render_template('items/show.html',
                                   item=item,
                                   categories=categories)
コード例 #5
0
 def put (self, name):  #change item
     data = Item.parser.parse_args()
     item = ItemModel.find_by_name(name)
     updated_item = ItemModel(name, data['price'])
     if item is None:
         try:
            updated_item.insert()
         except:
             return {"message":" An error occurred inserting the item"}, 500
     else:
         try:
            updated_item.update()
         except:
             raise
             return {"message":" An error occurred updating the item"}, 500
     return updated_item.json()
コード例 #6
0
ファイル: items.py プロジェクト: btyy77c/python_flask
    def index(self, category_name, headers):
        """Queries category and related items, then renders index view"""
        category = CategoryModel.find(self.db_session, category_name)
        items = ItemModel.category_group(self.db_session, category.id)
        self.db_session.close()

        if headers == 'application/json':
            json_items = []
            for item in items:
                json_items.append(item.attributes())
            return jsonify({
                'category': category.attributes(),
                'items': json_items
            })
        else:
            return render_template('items/index.html',
                                   category=category,
                                   items=items)
コード例 #7
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'])


        try:
          ItemModel.insert(item)

        except:
            return {"message": "An error ocurred inserting the item."}, 500

        return item.json(), 201
コード例 #8
0
 def get(self, name):
   item = ItemModel.find_by_name(name)
   if item:
         return item.json()
   else:
         return {'message': 'Item not found'}, 404