|
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) |
|
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__} |
|
|