class PurchaseReward: def __init__(self): self.home_page = Home() def POST(self, reward_name): user_factory = UserFactory(UserRepository(MongoWrapper())) user = user_factory.find_user(web.cookies().get('username')) try: user.purchase(reward_name) user_repository = UserRepository(MongoWrapper()) user_repository.save_state(user) raise web.seeother('/') except NotPurchasable: return self.home_page.render_home_page(user, error='Not enough points')
class CompleteTask: def __init__(self): self.home = Home() def POST(self, task_name): user_factory = UserFactory(UserRepository(MongoWrapper())) user = user_factory.find_user(web.cookies().get('username')) complete_task_form = self.home.complete_task_form if not complete_task_form.validates(): return self.home.render_home_page(user) user.complete_task(task_name) user_repository = UserRepository(MongoWrapper()) user_repository.save_state(user) raise web.seeother('/')
class CreateHabit: def __init__(self): self.home_page = Home() def POST(self): user_factory = UserFactory(UserRepository(MongoWrapper())) user = user_factory.find_user(web.cookies().get('username')) habit_form = self.home_page.habit_form if not habit_form.validates(): return self.home_page.render_home_page(user) habit = Habit(habit_form.d.new_habit_name) user.habits.append(habit) user_repository = UserRepository(MongoWrapper()) user_repository.save_state(user) raise web.seeother('/')
class CreateReward: def __init__(self): self.home_page = Home() def POST(self): reward_form = self.home_page.reward_form user_factory = UserFactory(UserRepository(MongoWrapper())) user = user_factory.find_user(web.cookies().get('username')) if not reward_form.validates(): return self.home_page.render_home_page(user) new_reward = Reward(reward_form.d.new_reward_name, reward_form.d.new_reward_cost) user.rewards.append(new_reward) user_repository = UserRepository(MongoWrapper()) user_repository.save_state(user) raise web.seeother('/')
class CreateWatermelonTask: def __init__(self): self.home_page = Home() def POST(self): user_factory = UserFactory(UserRepository(MongoWrapper())) user = user_factory.find_user(web.cookies().get('username')) watermelon_task_form = self.home_page.watermelon_task_form if not watermelon_task_form.validates(): return self.home_page.render_home_page(user) new_task = WatermelonTask(watermelon_task_form.d.new_watermelon_task_name) user.tasks.append(new_task) user_repository = UserRepository(MongoWrapper()) user_repository.save_state(user) raise web.seeother('/')
class DeleteReward: def __init__(self): self.home = Home() def POST(self, reward_name): user_factory = UserFactory(UserRepository(MongoWrapper())) user = user_factory.find_user(web.cookies().get('username')) delete_reward_form = self.home.delete_reward_form if not delete_reward_form.validates(): return self.home.render_home_page(user) user.delete_reward(reward_name) user_repository = UserRepository(MongoWrapper()) user_repository.save_state(user) raise web.seeother('/')