Esempio n. 1
0
def get_sites_from_db(session, page, limit, search_text=None):
    """ Query the database for sites, it will cache the query
    to redis if possible
    """

    query = session.query(Site)

    if search_text:
        like_format = '%' + search_text + '%'
        query = query.filter(
            or_(
                Site.url.like(like_format),
                Site.description.like(like_format),
            ))

    query = query.options(FromCache())

    if limit:
        query = query.limit(limit)

    if page and limit:
        offset = page * limit
        query = query.offset(offset)

    return query
Esempio n. 2
0
def get_users_from_db(session, page, limit, search_text=None):
    """ This queries the database for the user and his profile,
    it will cache the query to redis if possible
    """

    query = session.query(User)
    query = query.options(joinedload('profile'))

    if search_text:
        like_format = '%' + search_text + '%'
        query = query.filter(
            and_(
                or_(User.username.like(like_format),
                    User.email.like(like_format),
                    UserProfile.first_name.like(like_format),
                    UserProfile.last_name.like(like_format)),
                UserProfile.user_pk == User.pk))

    query = query.options(FromCache())
    query = query.options(RelationshipCache(User.profile))

    if limit:
        query = query.limit(limit)

    if page and limit:
        offset = page * limit
        query = query.offset(offset)

    users = query.all()

    return users
Esempio n. 3
0
def get_site_by_pk(session, site_pk, from_cache=True):
    query = session.query(Site).filter(Site.pk == site_pk)
    if from_cache:
        query = query.options(FromCache())

    site = query.one()

    return site
Esempio n. 4
0
def get_user_by_username(session,
                         username,
                         with_profile=True,
                         from_cache=True):

    query = session.query(User).filter(User.username == username)

    if with_profile:
        query = query.options(joinedload('profile'))

    if from_cache:
        query = query.options(FromCache())
        query = query.options(RelationshipCache(User.profile))

    user = query.one()

    return user