Skip to content

Commit 63214f8

Browse files
committed
Now with queries using mongoengine.
1 parent 77d26b6 commit 63214f8

File tree

2 files changed

+24
-76
lines changed

2 files changed

+24
-76
lines changed
Lines changed: 12 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,23 @@
11
from typing import List, Optional
2-
import sqlalchemy.orm
3-
from sqlalchemy.orm import Session
42

5-
import pypi_org.data.db_session as db_session
6-
from pypi_org.data.package import Package
7-
from pypi_org.data.releases import Release
3+
from pypi_org.nosql.packages import Package
4+
from pypi_org.nosql.releases import Release
85

96

107
def get_latest_releases(limit=10) -> List[Release]:
11-
session = db_session.create_session()
12-
try:
13-
14-
releases = session.query(Release). \
15-
options(sqlalchemy.orm.joinedload(Release.package)). \
16-
order_by(Release.created_date.desc()). \
17-
limit(limit). \
18-
all()
19-
20-
finally:
21-
session.close()
22-
8+
releases = Release.objects(). \
9+
order_by("-created_date"). \
10+
limit(limit). \
11+
all()
2312
return releases
2413

2514

2615
def get_package_count() -> int:
27-
session = db_session.create_session()
28-
try:
29-
return session.query(Package).count()
30-
finally:
31-
session.close()
16+
return Package.objects().count()
3217

3318

3419
def get_release_count() -> int:
35-
session = db_session.create_session()
36-
try:
37-
return session.query(Release).count()
38-
finally:
39-
session.close()
20+
return Release.objects().count()
4021

4122

4223
def get_package_by_id(package_id: str) -> Optional[Package]:
@@ -45,23 +26,12 @@ def get_package_by_id(package_id: str) -> Optional[Package]:
4526

4627
package_id = package_id.strip().lower()
4728

48-
session = db_session.create_session()
49-
try:
50-
51-
package = session.query(Package) \
52-
.options(sqlalchemy.orm.joinedload(Package.releases)) \
53-
.filter(Package.id == package_id) \
54-
.first()
55-
56-
finally:
57-
session.close()
29+
package = Package.objects() \
30+
.filter(id=package_id) \
31+
.first()
5832

5933
return package
6034

6135

6236
def all_packages(limit: int) -> List[Package]:
63-
session: Session = db_session.create_session()
64-
try:
65-
return list(session.query(Package).limit(limit))
66-
finally:
67-
session.close()
37+
return list(Package.objects().limit(limit))
Lines changed: 12 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
11
from typing import Optional
22

33
from passlib.handlers.sha2_crypt import sha512_crypt as crypto
4-
import pypi_org.data.db_session as db_session
5-
from pypi_org.data.users import User
4+
from pypi_org.nosql.users import User
65

76

87
def get_user_count() -> int:
9-
session = db_session.create_session()
10-
try:
11-
return session.query(User).count()
12-
finally:
13-
session.close()
8+
return User.objects().count()
149

1510

1611
def find_user_by_email(email: str) -> Optional[User]:
17-
session = db_session.create_session()
18-
try:
19-
return session.query(User).filter(User.email == email).first()
20-
finally:
21-
session.close()
12+
return User.objects().filter(email=email).first()
2213

2314

2415
def create_user(name: str, email: str, password: str) -> Optional[User]:
@@ -30,12 +21,7 @@ def create_user(name: str, email: str, password: str) -> Optional[User]:
3021
user.name = name
3122
user.hashed_password = hash_text(password)
3223

33-
session = db_session.create_session()
34-
try:
35-
session.add(user)
36-
session.commit()
37-
finally:
38-
session.close()
24+
user.save()
3925

4026
return user
4127

@@ -50,24 +36,16 @@ def verify_hash(hashed_text: str, plain_text: str) -> bool:
5036

5137

5238
def login_user(email: str, password: str) -> Optional[User]:
53-
session = db_session.create_session()
54-
try:
55-
user = session.query(User).filter(User.email == email).first()
56-
if not user:
57-
return None
39+
user = find_user_by_email(email)
40+
if not user:
41+
return None
5842

59-
if not verify_hash(user.hashed_password, password):
60-
return None
43+
if not verify_hash(user.hashed_password, password):
44+
return None
6145

62-
return user
63-
finally:
64-
session.close()
46+
return user
6547

6648

6749
def find_user_by_id(user_id: int) -> Optional[User]:
68-
session = db_session.create_session()
69-
try:
70-
user = session.query(User).filter(User.id == user_id).first()
71-
return user
72-
finally:
73-
session.close()
50+
user = User.objects().filter(id=user_id).first()
51+
return user

0 commit comments

Comments
 (0)