hotspot / App /PostLikes /PostLikesRoutes.py
mbonea-ewallet godwin
cruds are ready
8450c71
raw
history blame
1.62 kB
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__}