Exemplo n.º 1
0
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')
Exemplo n.º 2
0
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('/')
Exemplo n.º 3
0
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('/')
Exemplo n.º 4
0
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('/')
Exemplo n.º 5
0
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('/')
Exemplo n.º 6
0
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('/')