コード例 #1
0
ファイル: cars.py プロジェクト: uday1bhanu/it490-car-calendar
def add_car(user_id: int, make: str, model: str, year: int, mileage: int,
            weekly_mileage: int):
    """
    Insert a car row into the cars table.
    """
    message = lambda m, s=False: {'message': m, 'success': s}
    query = """
        INSERT INTO `cars` (
            `user_id`,  `make`, `model`, `year`, `mileage`, `weekly_mileage`
        ) VALUES (%s, %s, %s, %s, %s, %s);
    """

    user = users.get_by_id(user_id)
    if not user:
        return message('USER_NOT_FOUND')

    try:
        db.execute(query,
                   (user_id, make, model, year, mileage, weekly_mileage))
        conn.commit()
        return message('Car added!', True)

    except IntegrityError:
        ez_log('DATA', 'DATA_WARNING',
               'Car could not be added for user "%s".' % user_id)
        return message('Something went wrong while adding your car.', False)
コード例 #2
0
def is_token_taken(token: str):
    """
    Test if token is already taken.
    Returns true if token is taken.
    """
    if not token:
        return

    query = "SELECT EXISTS(SELECT 1 FROM `users` WHERE token=%s) AS taken;"
    db.execute(query, (token,))
    return db.fetchone().get('taken') == 1
コード例 #3
0
def get_by_id(user_id: int, fields='*'):
    """
    Fetch user by its id.
    Returns user dict or None.
    """
    if not user_id:
        return

    query = "SELECT {} FROM `users` WHERE id=%s LIMIT 1".format(fields)
    db.execute(query, (user_id,))
    return db.fetchone()
コード例 #4
0
def get_by_token(token: str, fields='*'):
    """
    Fetch user by its token.
    Returns user dict or None.
    """
    if not token:
        return

    query = "SELECT {} FROM `users` WHERE token=%s LIMIT 1".format(fields)
    db.execute(query, (token,))
    return db.fetchone()
コード例 #5
0
ファイル: cars.py プロジェクト: uday1bhanu/it490-car-calendar
def update_car(car_id: int, mileage: int, weekly_mileage: int):
    """
    Get a list of user's cars by the user's token.
    """
    query = """
        UPDATE `cars`
        SET mileage=%s, weekly_mileage=%s
        WHERE cars.id=%s
    """
    db.execute(query, (mileage, weekly_mileage, car_id))
    return db.fetchall()
コード例 #6
0
ファイル: cars.py プロジェクト: uday1bhanu/it490-car-calendar
def delete_car(user_id: int, car_id: int):
    """
    Delete a car row from the cars table by its id field.
    """
    query = """
        DELETE cars.* FROM `cars`
        INNER JOIN `users` ON users.id=cars.user_id
        WHERE users.id=%s AND cars.id=%s
    """
    print(user_id, car_id)
    db.execute(query, (user_id, car_id))
コード例 #7
0
ファイル: cars.py プロジェクト: uday1bhanu/it490-car-calendar
def get_car(user_id: int, car_id: int):
    """
    Get a car from the cars table by its id field.
    """
    query = """
        SELECT cars.* FROM `users`
        INNER JOIN `cars` ON users.id=cars.user_id
        WHERE users.id=%s AND cars.id=%s
    """
    db.execute(query, (user_id, car_id))
    return db.fetchone()
コード例 #8
0
ファイル: cars.py プロジェクト: uday1bhanu/it490-car-calendar
def get_cars(user_id: int):
    """
    Get a list of user's cars by the user's token.
    """
    query = """
        SELECT cars.* FROM `users`
        INNER JOIN `cars` ON users.id=cars.user_id
        WHERE users.id=%s
    """
    db.execute(query, (user_id, ))
    return db.fetchall()
コード例 #9
0
def get_by_username_or_email(username_or_email: str, fields='*'):
    """
    Fetch user by its username or email address.
    Returns user dict or None.
    """
    if not username_or_email:
        return

    field = 'username'
    if '@' in username_or_email:
        field = 'email'

    query = "SELECT {} FROM `users` WHERE {}=%s".format(fields, field)
    db.execute(query, (username_or_email,))
    return db.fetchone()