File size: 1,619 Bytes
8450c71
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from fastapi import APIRouter, Depends
from .Schemas import addLike,deleteLike
from .Model import PostLike
from App.Users.Model import User
from App.Post.Model import Post
from App.utils import get_user_and_post
import asyncio
postLike_router = APIRouter(tags=["PostLikes"])




@postLike_router.post("/postLike/add")
async def add_postLike(post: addLike):
    user,_post=await get_user_and_post(post) #validate if both the post and user exist
    previos =await PostLike.objects.filter(user=user).filter(post=_post).first()
    if previos:
        return {"code": 400, "message": "you already liked it", "payload": None}
    
    data=await PostLike.objects.create(post=_post,user=user)
    return {"code": 200, "message": "success", "payload": data.__dict__}

@postLike_router.post("/postLike/delete")
async def create_post(post: deleteLike):
    user,_post=await get_user_and_post(post)
    data=await PostLike.objects.filter(id=post.id).first()
    if not data:
        return {"code": 400, "message": "Does not exist", "payload": None}
    if user.id == data.user.id and _post.id == data.post.id:
        await data.delete()
        return {"code": 200, "message": "success", "payload": None}


@postLike_router.post("/postLike/get")
async def create_post(post: deleteLike):
    user,_post=await get_user_and_post(post)
    data=await PostLike.objects.filter(id=post.id).first()
    if not data:
        return {"code": 400, "message": "Does not exist", "payload": None}
    if user.id == data.user.id and _post.id == data.post.user.id:
        return {"code": 200, "message": "success", "payload": data.__dict__}