Beispiel #1
0
def insert_a_package():
    p = Package()
    p.id = input("Package name: ")
    p.summary = input("Package summary: ")
    p.author_name = input("Author name: ")
    p.author_email = input("Author email: ")
    p.license = input("license: ")

    r1 = Release()
    print("Release 1: ")
    r1.major_ver = int(input('Major version:'))
    r1.minor_ver = int(input('Minor version:'))
    r1.build_ver = int(input('Build version:'))
    r1.size = 100_000

    r2 = Release()
    print("Release 2: ")
    r2.major_ver = int(input('Major version:'))
    r2.minor_ver = int(input('Minor version:'))
    r2.build_ver = int(input('Build version:'))
    r2.size = 200_000

    p.releases.append(r1)
    p.releases.append(r2)

    session = DbSession.factory()

    session.add(p)

    session.commit()
def find_package_by_name(package_name: str) -> Optional[Package]:
    session = DbSession.factory()

    # .options(subqueryload(Package.releases))

    return session.query(Package) \
        .filter(Package.id == package_name) \
        .first()
Beispiel #3
0
def create_user(email: str, name: str, password: str) -> User:
    user = User()
    user.name = name
    user.email = email.lower().strip()
    user.hashed_password = hash_text(password)

    session = DbSession.factory()
    session.add(user)
    session.commit()
    return user
Beispiel #4
0
def migrate_users():
    if MongoUser.objects().count():
        return

    session = DbSession.factory()
    sql_users = session.query(SqlUser).all()
    for sut in sql_users:
        su: SqlUser = sut
        u = MongoUser()
        u.created_date = su.created_date
        u.hashed_password = su.hashed_password
        u.name = su.name
        u.email = su.email
        u.save()
Beispiel #5
0
def login_user(email: str, password: str) -> Optional[User]:
    if not email:
        return None

    email = email.lower().strip()

    session = DbSession.factory()
    user = session.query(User).filter(User.email == email).first()
    if not user:
        return None

    if not verify_hash(user.hashed_password, password):
        return None

    return user
def latest_releases(limit=10) -> List[Package]:
    session = DbSession.factory()
    releases = session.query(Release).order_by(Release.created_date.desc()).limit(limit * 2)

    packages_in_order = [r.package_id for r in releases]
    package_ids = {r.package_id for r in releases}  # gives distict packages using set

    packages = {p.id: p for p in session.query(Package).filter(Package.id.in_(package_ids))}

    results = []
    for r in releases:
        if len(results) >= limit:
            break

        results.append(packages[r.package_id])

    return results
Beispiel #7
0
def migrate_releases():
    if MongoRelease.objects().count():
        return

    session = DbSession.factory()
    sql_releases = session.query(SqlRelease).all()
    for srp in sql_releases:
        sr: SqlRelease = srp
        r = MongoRelease()
        r.created_date = sr.created_date
        r.comment = sr.comment
        r.major_ver = sr.major_ver
        r.minor_ver = sr.minor_ver
        r.build_ver = sr.build_ver
        r.url = sr.url
        r.size = sr.size
        r.package_id = sr.package_id

        r.save()
Beispiel #8
0
def migrate_packages():
    if MongoPackage.objects().count():
        return

    session = DbSession.factory()
    sql_packages = session.query(SqlPackage).all()
    for sup in sql_packages:
        sp: SqlPackage = sup
        p = MongoPackage()
        p.id = sp.id
        p.created_date = sp.created_date
        p.summary = sp.summary
        p.description = sp.description
        p.home_page = sp.home_page
        p.docs_url = sp.docs_url
        p.package_url = sp.package_url

        p.author = sp.author_name
        p.author_email = sp.author_email

        p.license = sp.license
        p.maintainers = []  # Find, load, and copy over maintainer IDs.

        p.save()
def package_count() -> int:
    session = DbSession.factory()
    return session.query(Package).count()
def release_count() -> int:
    session = DbSession.factory()
    return session.query(Release).count()
Beispiel #11
0
def all_packages(limit: int) -> List[Package]:
    session = DbSession.factory()
    return list(session.query(Package).limit(limit))
Beispiel #12
0
def user_count() -> int:
    session = DbSession.factory()
    return session.query(User).count()
Beispiel #13
0
def find_user_by_id(user_id: int) -> Optional[User]:
    session = DbSession.factory()
    return session.query(User).filter(User.id == user_id).first()
Beispiel #14
0
def find_user_by_email(email: str) -> Optional[User]:
    session = DbSession.factory()
    return session.query(User).filter(User.email == email).first()