11from flask import Blueprint
2+ from flask import request
23from flask_jwt_extended import current_user
34from flask_jwt_extended import jwt_required
45from PyMatcha .models .like import Like
56from PyMatcha .models .match import Match
67from PyMatcha .models .user import get_user
8+ from PyMatcha .utils .decorators import validate_params
79from PyMatcha .utils .errors import BadRequestError
810from PyMatcha .utils .errors import NotFoundError
911from PyMatcha .utils .success import Success
1416
1517@like_bp .route ("/like/<uid>" , methods = ["POST" ])
1618@jwt_required
19+ @validate_params ({"is_superlike" : bool })
1720def 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" ])
0 commit comments