Skip to content

Commit 09c80d4

Browse files
committed
Started implementing superlikes
1 parent ccfb079 commit 09c80d4

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

backend/PyMatcha/routes/api/like.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from flask import Blueprint
2+
from flask import request
23
from flask_jwt_extended import current_user
34
from flask_jwt_extended import jwt_required
45
from PyMatcha.models.like import Like
56
from PyMatcha.models.match import Match
67
from PyMatcha.models.user import get_user
8+
from PyMatcha.utils.decorators import validate_params
79
from PyMatcha.utils.errors import BadRequestError
810
from PyMatcha.utils.errors import NotFoundError
911
from PyMatcha.utils.success import Success
@@ -14,7 +16,15 @@
1416

1517
@like_bp.route("/like/<uid>", methods=["POST"])
1618
@jwt_required
19+
@validate_params({"is_superlike": bool})
1720
def like_profile(uid):
21+
22+
is_superlike = request.get_json()["is_superlike"]
23+
24+
if is_superlike:
25+
# TODO: Check that user has superlikes left today
26+
pass
27+
1828
try:
1929
u = get_user(uid)
2030
except NotFoundError:
@@ -23,13 +33,16 @@ def like_profile(uid):
2333
raise BadRequestError("Cannot like yourself.")
2434
if current_user.already_likes(u.id):
2535
raise BadRequestError("You already liked this person.")
26-
Like.create(liker_id=current_user.id, liked_id=u.id)
36+
Like.create(liker_id=current_user.id, liked_id=u.id, is_superlike=is_superlike)
2737

2838
if u.already_likes(current_user.id):
2939
Match.create(user_1=current_user.id, user_2=u.id)
3040
return Success("It's a match !")
3141

32-
return Success("Liked user.")
42+
if is_superlike:
43+
return Success("Superliked user.")
44+
else:
45+
return Success("Liked user.")
3346

3447

3548
@like_bp.route("/unlike/<uid>", methods=["POST"])

backend/PyMatcha/utils/orm/_model.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ def get(cls, **kwargs):
258258
raise ValueError("Not found.")
259259

260260
@classmethod
261-
def get_multi(cls, **kwargs) -> List:
261+
def get_multi(cls, **kwargs):
262262
"""
263263
Get a model from the database, using multiple keyword argument as a filter.
264264
@@ -304,7 +304,7 @@ def get_multi(cls, **kwargs) -> List:
304304
raise ValueError("Not found.")
305305

306306
@classmethod
307-
def get_multis(cls, **kwargs):
307+
def get_multis(cls, **kwargs) -> List:
308308
"""
309309
Get models from the database, using multiple keyword argument as a filter.
310310

0 commit comments

Comments
 (0)