Example #1
0
def add_user(name,
             email,
             website,
             latitude,
             longitude,
             role=0,
             email_updates=False):
    """Add a user to the database.

    :param name: Name of user.
    :type name: str

    :param email: Email of user.
    :type email: str

    :param website: Website of user.
    :type website: str

    :param latitude: latitude of this user
    :type latitude: float

    :param longitude: longitude of this uer
    :type longitude: float

    :param role: 0 if user , 1 if trainer, 2 if developer
    :type role: int

    :param email_updates: True if user wants email updates about project
        related activities. False if not.
    :type email_updates: bool

    :returns: Globally unique identifier for the added user.
    :rtype: str
    """
    conn = get_conn(APP.config['DATABASE'])
    guid = uuid.uuid4()

    if email_updates:
        email_updates = 1
    else:
        email_updates = 0

    env = Environment(loader=PackageLoader('users', 'templates'))
    template = env.get_template('sql/add_user.sql')
    sql = template.render(guid=guid,
                          name=name,
                          email=email,
                          website=website,
                          role=role,
                          email_updates=email_updates,
                          longitude=longitude,
                          latitude=latitude)
    conn.execute(sql)
    conn.commit()
    conn.close()
    return guid
Example #2
0
def edit_user(guid, name, email, website, latitude, longitude, role, email_updates):
    """Edit a user with given guid with all new attribute value.

    :param guid: Guid of user.
    :type guid: str

    :param name: The new name of user.
    :type name: str

    :param email: The new email of user.
    :type email: str

    :param website: The new website of user.
    :type website: str

    :param latitude: The new latitude of this user
    :type latitude: float

    :param longitude: The new longitude of this uer
    :type longitude: float

    :param role: The new role of this user. 0 if user , 1 if trainer,
    2 if developer
    :type role: int

    :param email_updates: The new email updates status of user. True if user
    wants email updates about project related activities. False if not.
    :type email_updates: bool

    :returns: Globally unique identifier for the added user.
    :rtype: str
    """
    conn = get_conn(APP.config["DATABASE"])

    if email_updates:
        email_updates = 1
    else:
        email_updates = 0

    env = Environment(loader=PackageLoader("users", "templates"))
    template = env.get_template("sql/update_user.sql")
    sql = template.render(
        guid=guid,
        name=name,
        email=email,
        website=website,
        role=role,
        email_updates=email_updates,
        longitude=longitude,
        latitude=latitude,
    )
    conn.execute(sql)
    conn.commit()
    conn.close()
    return guid
Example #3
0
def edit_user(guid, name, email, website, latitude, longitude, role,
              email_updates):
    """Edit a user with given guid with all new attribute value.

    :param guid: Guid of user.
    :type guid: str

    :param name: The new name of user.
    :type name: str

    :param email: The new email of user.
    :type email: str

    :param website: The new website of user.
    :type website: str

    :param latitude: The new latitude of this user
    :type latitude: float

    :param longitude: The new longitude of this uer
    :type longitude: float

    :param role: The new role of this user. 0 if user , 1 if trainer,
    2 if developer
    :type role: int

    :param email_updates: The new email updates status of user. True if user
    wants email updates about project related activities. False if not.
    :type email_updates: bool

    :returns: Globally unique identifier for the added user.
    :rtype: str
    """
    conn = get_conn(APP.config['DATABASE'])

    if email_updates:
        email_updates = 1
    else:
        email_updates = 0

    env = Environment(loader=PackageLoader('users', 'templates'))
    template = env.get_template('sql/update_user.sql')
    sql = template.render(guid=guid,
                          name=name,
                          email=email,
                          website=website,
                          role=role,
                          email_updates=email_updates,
                          longitude=longitude,
                          latitude=latitude)
    conn.execute(sql)
    conn.commit()
    conn.close()
    return guid
 def setUp(self):
     """Set up things before debugging."""
     #noinspection PyUnresolvedReferences
     self.db_path = os.path.abspath(os.path.join(
         os.path.dirname(__file__),
         os.pardir,
         os.pardir,
         os.pardir,
         'test_users.db'))
     if os.path.exists(self.db_path):
         os.remove(self.db_path)
     self.conn = get_conn(self.db_path)
Example #5
0
def add_user(name, email, website, latitude, longitude, role=0, email_updates=False):
    """Add a user to the database.

    :param name: Name of user.
    :type name: str

    :param email: Email of user.
    :type email: str

    :param website: Website of user.
    :type website: str

    :param latitude: latitude of this user
    :type latitude: float

    :param longitude: longitude of this uer
    :type longitude: float

    :param role: 0 if user , 1 if trainer, 2 if developer
    :type role: int

    :param email_updates: True if user wants email updates about project
        related activities. False if not.
    :type email_updates: bool

    :returns: Globally unique identifier for the added user.
    :rtype: str
    """
    conn = get_conn(APP.config["DATABASE"])
    guid = uuid.uuid4()

    if email_updates:
        email_updates = 1
    else:
        email_updates = 0

    env = Environment(loader=PackageLoader("users", "templates"))
    template = env.get_template("sql/add_user.sql")
    sql = template.render(
        guid=guid,
        name=name,
        email=email,
        website=website,
        role=role,
        email_updates=email_updates,
        longitude=longitude,
        latitude=latitude,
    )
    conn.execute(sql)
    conn.commit()
    conn.close()
    return guid
Example #6
0
def delete_user(guid):
    """Delete a user with given guid

    :param guid: Guid of user.
    :type guid: str
    """
    conn = get_conn(APP.config["DATABASE"])
    env = Environment(loader=PackageLoader("users", "templates"))
    template = env.get_template("sql/delete_user.sql")
    sql = template.render(guid=guid)
    conn.execute(sql)
    conn.commit()
    conn.close()
Example #7
0
def delete_user(guid):
    """Delete a user with given guid

    :param guid: Guid of user.
    :type guid: str
    """
    conn = get_conn(APP.config['DATABASE'])
    env = Environment(loader=PackageLoader('users', 'templates'))
    template = env.get_template('sql/delete_user.sql')
    sql = template.render(guid=guid)
    conn.execute(sql)
    conn.commit()
    conn.close()
Example #8
0
def get_all_users(role=0):
    """Get all users from database.

    :param role: Whether to fetch users, trainers, or developers. Default of
        0 will fetch users only.
    :type role: int

    :returns: A list of user objects.
    :rtype: list
    """
    conn = get_conn(APP.config["DATABASE"])

    sql = "SELECT * FROM user WHERE role= %i" % role

    all_users = query_db(conn, sql)
    return all_users
Example #9
0
def get_all_users(role=0):
    """Get all users from database.

    :param role: Whether to fetch users, trainers, or developers. Default of
        0 will fetch users only.
    :type role: int

    :returns: A list of user objects.
    :rtype: list
    """
    conn = get_conn(APP.config['DATABASE'])

    sql = 'SELECT * FROM user WHERE role= %i' % role

    all_users = query_db(conn, sql)
    return all_users
Example #10
0
def get_user_by_email(email):
    """Get one user by email.

    :param email: Email address for the requested user.
    :type email: str

    :returns: A user expressed as a dictionary of key value pairs or None if
        the given email address does not exist.
    :rtype: dict
    """
    conn = get_conn(APP.config["DATABASE"])
    sql = 'SELECT * FROM user WHERE email="%s"' % email
    users = query_db(conn, sql)
    if len(users) == 0:
        return None
    else:
        return users[0]
Example #11
0
def get_user(guid):
    """Get a user given their GUID.

    :param guid: Globally unique identifier for the requested user.
    :type guid: str

    :returns: A user expressed as a dictionary of key value pairs or None if
        the given GUID does not exist.
    :rtype: dict
    """
    conn = get_conn(APP.config["DATABASE"])
    sql = 'SELECT * FROM user WHERE guid="%s"' % guid
    users = query_db(conn, sql)
    if len(users) == 0:
        return None
    else:
        return users[0]
Example #12
0
def get_user_by_email(email):
    """Get one user by email.

    :param email: Email address for the requested user.
    :type email: str

    :returns: A user expressed as a dictionary of key value pairs or None if
        the given email address does not exist.
    :rtype: dict
    """
    conn = get_conn(APP.config['DATABASE'])
    sql = 'SELECT * FROM user WHERE email="%s"' % email
    users = query_db(conn, sql)
    if len(users) == 0:
        return None
    else:
        return users[0]
Example #13
0
def get_user(guid):
    """Get a user given their GUID.

    :param guid: Globally unique identifier for the requested user.
    :type guid: str

    :returns: A user expressed as a dictionary of key value pairs or None if
        the given GUID does not exist.
    :rtype: dict
    """
    conn = get_conn(APP.config['DATABASE'])
    sql = 'SELECT * FROM user WHERE guid="%s"' % guid
    users = query_db(conn, sql)
    if len(users) == 0:
        return None
    else:
        return users[0]