Exemple #1
0
    def post(self):
        """
        Create a new ingredient.
        :return: Ingredient you created.
        """
        i = IngredientFactory.raw_to_obj(api.payload)
        i.refresh()
        IngredientFactory.insert_obj(obj=i)
        IngredientIndexer.index(i)

        # Invalidate cache
        IngredientScanCache.invalidate()
        IngredientTreeCache.invalidate()

        return ObjectSerializer.serialize(i, 'dict'), 201
Exemple #2
0
    def delete(self, slug):
        """
        Delete a single ingredient from the database.
        :param slug:
        :return:
        """
        i = IngredientFactory.produce_obj(id=slug)
        IngredientFactory.delete_obj(obj=i)

        # Invalidate caches and de-index.
        IngredientScanCache.invalidate()
        IngredientTreeCache.invalidate()
        IngredientIndexer.delete(i)

        return None, 204
Exemple #3
0
    def delete(self):
        """
        Delete all ingredients from the database. There be dragons here.
        :return: Number of items deleted.
        """
        objects = IngredientFactory.produce_all_objs()
        for i in objects:
            IngredientFactory.delete_obj(obj=i, commit=False)

        IngredientIndexer.empty()

        current_session.commit()
        IngredientScanCache.invalidate()
        IngredientTreeCache.invalidate()

        return len(objects), 204