Skip to content

Commit d3c3dc5

Browse files
committed
Updated ORM return values
1 parent 4ced763 commit d3c3dc5

File tree

4 files changed

+33
-69
lines changed

4 files changed

+33
-69
lines changed

backend/PyMatcha/models/user.py

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -84,20 +84,11 @@ def create(
8484
confirmed_on: datetime.datetime = None,
8585
) -> User:
8686
# Check email availability
87-
try:
88-
User.get(email=email)
89-
except ValueError:
90-
pass
91-
else:
87+
if User.get(email=email):
9288
logging.warning("Email {} taken".format(email))
9389
raise ConflictError("Email {} taken.".format(email), "Use another email.")
9490

95-
# Check username availability
96-
try:
97-
User.get(username=username)
98-
except ValueError:
99-
pass
100-
else:
91+
if User.get(username=username):
10192
logging.warning("Username {} taken".format(username))
10293
raise ConflictError("Username {} taken.".format(username), "Try another username.")
10394

@@ -152,20 +143,12 @@ def create(
152143
@staticmethod
153144
def register(email: str, username: str, password: str, first_name: str, last_name: str) -> User:
154145
# Check email availability
155-
try:
156-
User.get(email=email)
157-
except ValueError:
158-
pass
159-
else:
146+
if User.get(email=email):
160147
logging.debug("Email {} taken".format(email))
161148
raise ConflictError("Email {} taken.".format(email), "Use another email.")
162149

163150
# Check username availability
164-
try:
165-
User.get(username=username)
166-
except ValueError:
167-
pass
168-
else:
151+
if User.get(username=username):
169152
logging.warning("Username {} taken".format(username))
170153
raise ConflictError("Username {} taken.".format(username), "Try another username.")
171154

@@ -495,26 +478,17 @@ def get_user(uid: Any[int, str]) -> Optional[User]:
495478
try:
496479
uid = int(uid)
497480
except ValueError:
498-
try:
499-
user = User.get(username=uid)
500-
except ValueError:
501-
pass
502-
else:
481+
user = User.get(username=uid)
482+
if user:
503483
logging.debug("Found user {} from {}".format(user.id, uid))
504484
return user
505-
try:
506-
user = User.get(email=uid)
507-
except ValueError:
508-
pass
509-
else:
485+
user = User.get(email=uid)
486+
if user:
510487
logging.debug("Found user {} from {}".format(user.id, uid))
511488
return user
512489
else:
513-
try:
514-
user = User.get(id=uid)
515-
except ValueError:
516-
pass
517-
else:
490+
user = User.get(id=uid)
491+
if user:
518492
logging.debug("Found user {} from {}".format(user.id, uid))
519493
return user
520494
# If none of those worked, throw an error

backend/PyMatcha/routes/api/messages.py

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -98,20 +98,18 @@ def see_conversation_messages(with_uid):
9898
except NotFoundError:
9999
raise NotFoundError(f"With user {with_uid} not found.")
100100
unseen_messages = Message.get_multis(from_id=with_user.id, to_id=current_user.id, is_seen=False)
101-
if unseen_messages:
102-
for message in unseen_messages:
103-
message.is_seen = True
104-
message.seen_timestamp = datetime.datetime.utcnow()
105-
message.save()
101+
for message in unseen_messages:
102+
message.is_seen = True
103+
message.seen_timestamp = datetime.datetime.utcnow()
104+
message.save()
106105
return Success("Messages marked as seen.")
107106

108107

109108
@messages_bp.route("/messages/like/<message_id>", methods=["POST"])
110109
@jwt_required
111110
def like_message(message_id):
112-
try:
113-
message = Message.get(id=message_id)
114-
except ValueError:
111+
message = Message.get(id=message_id)
112+
if not message:
115113
raise NotFoundError(f"Message {message_id} not found.")
116114
if message.from_id == current_user.id:
117115
raise BadRequestError("Cannot like your own message.")
@@ -127,9 +125,8 @@ def like_message(message_id):
127125
@messages_bp.route("/messages/unlike/<message_id>", methods=["POST"])
128126
@jwt_required
129127
def unlike_message(message_id):
130-
try:
131-
message = Message.get(id=message_id)
132-
except ValueError:
128+
message = Message.get(id=message_id)
129+
if not message:
133130
raise NotFoundError(f"Message {message_id} not found.")
134131
if message.from_id == current_user.id:
135132
raise BadRequestError("Cannot unlike your own message.")
@@ -146,8 +143,5 @@ def unlike_message(message_id):
146143
@jwt_required
147144
def get_new_messages():
148145
message_list = Message.get_multis(to_id=current_user.id, is_seen=False)
149-
if not message_list:
150-
new_messages = []
151-
else:
152-
new_messages = [m.to_dict() for m in message_list]
146+
new_messages = [m.to_dict() for m in message_list]
153147
return SuccessOutput("new_messages", new_messages)

backend/PyMatcha/utils/orm/_model.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,11 @@ def get(cls, **kwargs):
221221
"""
222222
Get a model from the database, using a single keyword argument as a filter.
223223
224-
Class method allows you to use without instanciation eg.
224+
Class method allows you to use without instantiation eg.
225225
226226
model = Model.get(username="test")
227227
228-
Returns a populated user instance on success and raises an error if the row count was 0
228+
Returns a populated user instance on success and returns none if nothing was found
229229
230230
"""
231231

@@ -259,7 +259,7 @@ def get(cls, **kwargs):
259259
if data:
260260
return cls(data)
261261
else:
262-
raise ValueError("Not found.")
262+
return None
263263

264264
@classmethod
265265
def get_multi(cls, **kwargs):
@@ -305,7 +305,7 @@ def get_multi(cls, **kwargs):
305305
if data:
306306
return cls(data)
307307
else:
308-
raise ValueError("Not found.")
308+
return None
309309

310310
@classmethod
311311
def get_multis(cls, **kwargs) -> List:
@@ -359,7 +359,7 @@ def get_multis(cls, **kwargs) -> List:
359359
ret_list.append(cls(i))
360360
return ret_list
361361
else:
362-
return None
362+
return []
363363

364364
@classmethod
365365
def select_all(cls):

backend/PyMatcha/utils/tasks.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@ def update_heat_scores():
3737
reports_received = len(user.get_reports_received())
3838
views = len(user.get_views())
3939
matches = len(user.get_matches())
40-
try:
41-
messages = len(Message.get_multi(to_id=user.id))
42-
except ValueError:
40+
messages = Message.get_multi(to_id=user.id)
41+
if not messages:
4342
messages = 0
43+
else:
44+
messages = len(messages)
4445

4546
score = BASE_HEAT_SCORE
46-
if user.username == "seluj78" or user.username == "tet":
47+
if user.username == "seluj78" or user.username == "lauris":
4748
score += 100
4849
score += likes_received * LIKES_MULTIPLIER
4950
score += superlikes_received * SUPERLIKES_MULTIPLIER
@@ -71,12 +72,8 @@ def update_offline_users():
7172
date_lastseen = float(redis.get(key))
7273
# If the user has passed the deadline
7374
if date_lastseen < login_deadline_timestamp:
74-
try:
75-
u = User.get(id=user_id)
76-
except ValueError:
77-
# Edge case where the user has been deleted from DB while he was still online
78-
pass
79-
else:
75+
u = User.get(id=user_id)
76+
if u:
8077
u.date_lastseen = datetime.datetime.fromtimestamp(date_lastseen)
8178
u.is_online = False
8279
u.save()
@@ -85,9 +82,8 @@ def update_offline_users():
8582
redis.delete(key)
8683
count += 1
8784
else:
88-
try:
89-
u = User.get(id=user_id)
90-
except ValueError:
85+
u = User.get(id=user_id)
86+
if not u:
9187
# Edge case where the user has been deleted from DB while he was still online
9288
redis.delete(key)
9389
else:

0 commit comments

Comments
 (0)