コード例 #1
0
    def update_receipt(self, receipt):
        session = self.Session()

        try:
            read_receipt = session.query(Receipt) \
                .filter(Receipt.id == receipt.id) \
                .first()

            if read_receipt is not None:
                read_receipt.name = receipt.name
                read_receipt.description = receipt.description
                ingredients = []
                # todo dnry
                for ingredient in receipt.ingredients:
                    ingredients.append(Ingredient(ingredient.name,
                                                  ingredient.calories))
                read_receipt.ingredients = ingredients
                session.commit()

        except Exception as e:
            print(e)
            session.rollback()
            raise UnknownErrorInStorageSystem()
        finally:
            session.close()
            if read_receipt is None:
                raise ElementNotPresent()
コード例 #2
0
    def get_receipt(self, receipt_id):
        session = self.Session()

        try:
            read_receipt = session.query(Receipt) \
                .filter(Receipt.id == receipt_id) \
                .first()

            if read_receipt is not None:
                ingredients = []
                for ingredient in read_receipt.ingredients:
                    ingredients.append(ModelControllerIngredient(ingredient.id,
                                                                 ingredient.name,
                                                                 ingredient.calories))

                receipt = ModelControllerReceipt(read_receipt.id,
                                                 read_receipt.name,
                                                 read_receipt.description,
                                                 ingredients)
        except Exception as e:
            print(e)
            raise UnknownErrorInStorageSystem()
        finally:
            session.close()

        return receipt
コード例 #3
0
    def delete_ingredient(self, ingredient_id):
        session = self.Session()

        try:
            read_ingredient = session.query(Ingredient) \
                .filter(Ingredient.id == ingredient_id) \
                .first()
            if read_ingredient is not None:
                session.delete(read_ingredient)
                session.commit()
        except Exception as e:
            print(e)
            session.rollback()
            raise UnknownErrorInStorageSystem()
        finally:
            session.close()
コード例 #4
0
    def set_ingredient(self, ingredient):
        session = self.Session()

        ingredient_id = -1
        try:
            insert_ingredient = Ingredient(ingredient.name, ingredient.calories);
            session.add(insert_ingredient)
            session.commit()

            ingredient_id = insert_ingredient.id
        except Exception as e:
            print(e)
            session.rollback()
            raise UnknownErrorInStorageSystem()
        finally:
            session.close()

        return ingredient_id
コード例 #5
0
    def get_ingredient(self, ingredient_id):
        session = self.Session()

        ingredient = None
        try:
            read_ingredient = session.query(Ingredient) \
                .filter(Ingredient.id == ingredient_id) \
                .first()

            if read_ingredient is not None:
                ingredient = ModelControllerIngredient(read_ingredient.id,
                                                       read_ingredient.name,
                                                       read_ingredient.calories)
        except Exception as e:
            print(e)
            raise UnknownErrorInStorageSystem()
        finally:
            session.close()

        return ingredient
コード例 #6
0
    def update_ingredient(self, ingredient):
        session = self.Session()

        try:
            read_ingredient = session.query(Ingredient) \
                .filter(Ingredient.id == ingredient.id) \
                .first()

            if read_ingredient is not None:
                read_ingredient.name = ingredient.name
                read_ingredient.calories = ingredient.calories
                session.commit()

        except Exception as e:
            print(e)
            session.rollback()
            raise UnknownErrorInStorageSystem()
        finally:
            session.close()
            if read_ingredient is None:
                raise ElementNotPresent()
コード例 #7
0
    def set_receipt(self, receipt):
        session = self.Session()
        receipt_id = -1

        try:
            ingredients = []
            # todo dnry
            for ingredient in receipt.ingredients:
                ingredients.append(Ingredient(ingredient.name,
                                              ingredient.calories))
            insert_receipt = Receipt(receipt.name, receipt.description, ingredients)

            session.add(insert_receipt)
            session.commit()

            receipt_id = insert_receipt.id
        except Exception as e:
            print(e)
            session.rollback()
            raise UnknownErrorInStorageSystem()
        finally:
            session.close()

        return receipt_id