Ejemplo n.º 1
0
def user_details(_, info, **kwargs):
    """ returns basic user data about the currently logged in user """
    user = get_user(info)
    return {
        "user": {"username": user.username, "username_slug": user.username_slug},
        "error": None,
    }
Ejemplo n.º 2
0
def update_daily_habit(_, info, data, name_slug):
    error_container = ErrorContainer("duration", "name", "name_slug")
    status = False
    habit = None
    name = data.get("name")
    user = get_user(info)
    description = data.get("description")
    date_to = data.get("date_to")
    vault = data.get('vault')
    habits = habit_models.DailyHabit.objects.filter(name_slug=name_slug,
                                                    user=user)
    if len(habits) > 1:
        error_container.update_with_error(
            "name_slug", "There was an error processing your request")
    if not habits.exists():
        error_container.update_with_error(
            "name_slug", "The habit you requested for does not exist")
    if not error_container:
        habit = habits[0]
        habit.name = name
        habit.description = description
        habit.date_to = date_to
        habit.vault = vault
        habit.save()
        status = True
    return {
        "status": status,
        "errors": error_container.get_all_errors(),
        "habit": habit
    }
Ejemplo n.º 3
0
def set_vault_password(self, info, password, *args, **kwargs):
    user = get_user(info)
    status = False
    error = None
    if not user.vault_password:
        user.set_vault_password(password)
        status = True
    else:
        error = "You have already set a vault password"
    return {"status": status, "error": error}
Ejemplo n.º 4
0
def delete_habit(_, info, name_slug, *args, **kwargs):
    user = get_user(info)
    status = False
    error = None
    try:
        habit_models.DailyHabit.objects.get(name_slug=name_slug,
                                            user=user).delete()
        status = True
    except habit_models.DailyHabit.DoesNotExist:
        error = "The requested habit does not exist in the database."
    return {"status": status, "error": error}
Ejemplo n.º 5
0
def toggle_tag_cycle(_, info, data, **kwargs):
    status = False
    error = None
    user = get_user(info)
    habit = habit_models.DailyHabit.objects.get(name_slug=data["name_slug"],
                                                user=user)
    try:
        today = data.get("date").strftime("%Y-%m-%d")
        habit.toggle_day(today)
        habit.save()
        status = True
    except KeyError:
        error = "The day you're trying to mark does not fall in this habit's duration."
    return {"status": status, "error": error}
Ejemplo n.º 6
0
def get_habit_details(_, info, name_slug, **kwargs):
    error = None
    user = get_user(info)
    ret_value = None
    try:
        habit = habit_models.DailyHabit.objects.get(name_slug=name_slug,
                                                    user=user)
        vars(habit)["is_completed"] = habit.is_completed
        vars(habit)["is_done"] = habit.is_done
        habit.is_done
        habit.progress = json.dumps(habit.progress)
        ret_value = vars(habit)
    except habit_models.DailyHabit.DoesNotExist:
        error = "The habit you requested for does not exist"
    return {"habit": ret_value, "error": error}
Ejemplo n.º 7
0
def create_daily_habit(_, info, data):
    error_container = ErrorContainer("date_from", "date_to", "name")
    status = False
    habit = None
    user = get_user(info)
    name = data.get("name")
    description = data.get("description")
    date_from = data.get("date_from")
    date_to = data.get("date_to")
    vault = data.get("vault")
    today = datetime.date.today()
    if date_from < today:
        error_container.update_with_error(
            "date_from",
            f"The starting date must be greater than {today.strftime('%m/%d/%Y')}",
        )
    if date_to - date_from < datetime.timedelta(days=0):
        error_container.update_with_error(
            "date_to", "The ending date can not be before the ending date")
    if habit_models.DailyHabit.objects.filter(name__iexact=name,
                                              user=user).exists():
        error_container.update_with_error(
            "name", "A habit with this name already exists")
    if not error_container:
        habit = habit_models.DailyHabit.objects.create(
            user=user,
            name=name,
            date_from=date_from,
            date_to=date_to,
            description=description,
            vault=vault,
        )
        status = True
    return {
        "status": status,
        "errors": error_container.get_all_errors(),
        "habit": habit
    }
Ejemplo n.º 8
0
def get_habit_report(_, info, name_slug, **kwargs):
    user = get_user(info)
    habit = habit_models.DailyHabit.objects.get(name_slug=name_slug, user=user)
    return habit.generate_report()
Ejemplo n.º 9
0
def check_vault_password(self, info, password, *args, **kwargs):
    user = get_user(info)
    return user.check_vault_password(password)
Ejemplo n.º 10
0
def get_user_report(self, info, *args, **kwargs):
    return get_user(info).get_report()
Ejemplo n.º 11
0
def check_if_vault_password_set(self, info, *args, **kwargs):
    user = get_user(info)
    flag = user.vault_password
    return flag is not None