def __init__(self, name, desc, goal, below, category): self.name = name self.desc = desc self.goal = goal self.below = below self.category_id = getattr( CategoryModel.find_existing_by_name(category), "id", None)
def __init__(self, desc, ecoPoints, savings, weekly, category): self.desc = desc self.ecoPoints = ecoPoints self.savings = savings self.weekly = weekly self.category_id = getattr( CategoryModel.find_existing_by_name(category), "id", None)
def update(self, data): for k in data: if k == "category": setattr( self, "category_id", getattr(CategoryModel.find_existing_by_name(data[k]), "id", None)) else: setattr(self, k, data[k]) setattr(self, "updated", datetime.now())
def delete(cls, name): category = CategoryModel.find_existing_by_name(name) if not category: return {"message": "Category not found"}, 404 try: category.delete_from_db() except IntegrityError as e: return {"database_exception": str(e)}, 400 except Exception as e: return {"message": "Internal error occurred during deletion."}, 500 return {"message": "Category deleted from database."}, 200
def post(cls, name): category = CategoryModel.find_existing_by_name(name) if category: return {"message": "Category with name '{}' already exists".format(name)}, 400 data = cls.parser.parse_args() category = CategoryModel(name, **data) try: category.save_to_db() except IntegrityError as e: return {"database_exception": str(e)}, 400 except: return {"message": "Internal error occurred during insertion."}, 500 return category.json(), 201
def put(cls, name): category = CategoryModel.find_existing_by_name(name) data = cls.parser.parse_args() if not category: category = CategoryModel(name, **data) else: category.update(data) try: category.save_to_db() except IntegrityError as e: return {"database_exception": str(e)}, 400 except: return {"message": "Internal error occurred during the update."}, 500 return category.json(), 201
def get(cls, name): category = CategoryModel.find_existing_by_name(name) if not category: return {"message": "Category not found."}, 404 return category.json(), 200