Exemple #1
0
def get_top_users_by_period(n, p, attr, descending, session) -> List[User]:
    """
    Returns the top "n" users in a period (1 week)
    sorted by "attr" in descending or ascending order as set by "descending"

    Parameters
    ----------
    n: int, required
        the number of users to return
    p: period weeks, required

    attr: str, required
        the column on the users table to sort by
    descending: bool, required
        which order to sort the rows by column 'attr' in False = ASC or True =DESC
    session: Session??, required
        a database session
    Returns
    ------
    users: [User]
        A list including the top n user objects as ordered by attr, desc
    """

    compare_timestamp = helper.get_date_time(datetime.now() - timedelta(weeks=p))
    sort_column = getattr(User, attr).desc(
    ) if descending else getattr(User, attr)

    users = session.query(User) \
        .filter(User.sign_up_timestamp >= compare_timestamp) \
        .order_by(sort_column) \
        .limit(n).all()
    return users
Exemple #2
0
def submission1():
    three_days_ago = helper.get_date_time(
        datetime.now() - timedelta(days=3))

    submission = Submission()
    submission.id = str(uuid4())
    submission.mail = "*****@*****.**"
    submission.submission_date = three_days_ago
    return submission
def create_review(id: int, item_id: str, user_id: str=None, status: str=None, finish_time=None) -> Review:
    review = Review()

    review.id = id
    review.item_id = item_id
    review.user_id = user_id
    review.status = status
    if finish_time == None:
        review.finish_timestamp = get_date_time_now()
    else:
        review.finish_timestamp = get_date_time(finish_time)
        
    return review
def anonymize_unconfirmed_submissions(session):

    two_days_ago = helper.get_date_time(datetime.now() - timedelta(days=2))
    submissions = session.query(Submission).filter(
        Submission.status == 'unconfirmed', Submission.submission_date < two_days_ago).all()
    counter = 0
    for submission in submissions:
        submission.mail = None
        session.merge(submission)
        counter += 1

    session.commit()
    return counter