예제 #1
0
def getListRecommendations(userId, filters):
    ''' Return the list of recommendations for a given user '''

    s = """ SELECT id
            FROM user
            WHERE id!={0}
            AND id NOT IN (
                SELECT user
                FROM rating
                WHERE user_target={0}
            )
            AND id NOT IN (
                SELECT user_target
                FROM rating
                WHERE user={0}
            )""".format(userId)

    for filterName in filters:
        value = filters[filterName]
        if value == None:
            continue
        if isinstance(value, str):
            value = '"' + value + '"'
        else:
            value = str(value)
        s += " AND ({0}={1} OR {0} IS NULL) ".format(filterName, value)

    userIds = database.executeQuery(s)

    recommendations = []
    for user in userIds:
        recommendations.append("/v2/users/" + str(user[0]))

    return recommendations
예제 #2
0
def getUserProfile(user_id):
    ''' Return information about a given user '''

    user = database.executeQuery("SELECT * FROM user WHERE id=" + str(user_id))

    if user:
        return userProfileFromArray(user[0])
    else:
        return {}
예제 #3
0
def getListUsers():
    ''' Get list of all users '''

    userList = []

    queryResults = database.executeQuery("SELECT * FROM user")
    user_columns = database.databaseSetup["tables"]["user"]["columns"]

    for user in queryResults:
        userList.append(userProfileFromArray(user))

    return userList
예제 #4
0
def getListMatches(userId):
    ''' Return the list of matches for a given user '''

    userIds = database.executeQuery(""" SELECT r.user
            FROM rating r
            LEFT JOIN rating r2
             ON r.user=r2.user_target
             AND r.user_target=r2.user
            WHERE r.type="L"
             AND r2.type="L"
             AND r.user=""" + str(userId))

    return userIds
예제 #5
0
def getListIncomingLikes(user_id):
    ''' Return the list of incomming likes for a given user, minus people that
        the user has already rated '''

    users = database.executeQuery(""" SELECT r.user
            FROM rating r
            LEFT JOIN rating r2
             ON r.user=r2.user_target
             AND r.user_target=r2.user
            WHERE r2.type IS NULL
             AND r.type="L"
             AND r.user_target=""" + str(user_id))

    return users
예제 #6
0
def getListMatches(userId):
    ''' Return the list of matches for a given user '''

    userIds = database.executeQuery(""" SELECT r.user_target
            FROM rating r
            LEFT JOIN rating r2
             ON r.user=r2.user_target
             AND r.user_target=r2.user
            WHERE r.type="L"
             AND r2.type="L"
             AND r.user=""" + str(userId))

    likes = []
    for user in userIds:
        likes.append("/v2/users/" + str(user[0]))

    return likes
예제 #7
0
def getListRecommendations(userId):
    ''' Return the list of recommendations for a given user '''

    userIds = database.executeQuery(""" SELECT id
            FROM user
            WHERE id!={0}
            AND id NOT IN (
                SELECT user
                FROM rating
                WHERE user_target={0}
            )
            AND id NOT IN (
                SELECT user_target
                FROM rating
                WHERE user={0}
            )""".format(userId))

    return userIds
예제 #8
0
def getUserProfile(userId):
    ''' Return information about a given user '''

    sql = """SELECT id, first_name, description, birthdate
             FROM user
             WHERE id=""" + str(userId)

    user = database.executeQuery(sql)

    if user:
        user = user[0]
        user_columns = database.databaseSetup["tables"]["user"]["columns"]
        return {
            "id": user[0],
            "name": user[1],
            "description": user[2],
            "birthdate": user[3]
        }
    else:
        return {}
예제 #9
0
def getListUsers():
    ''' Get list of all users '''

    userList = []

    queryResults = database.executeQuery(
        """SELECT id, first_name, description, birthdate
                                            FROM user""")
    user_columns = database.databaseSetup["tables"]["user"]["columns"]

    print(queryResults)

    for user in queryResults:
        userList.append({
            "id": user[0],
            "name": user[1],
            "description": user[2],
            "birthdate": user[3]
        })

    return userList