Commit 82164241 authored by Rafal's avatar Rafal

U accept or decline friend request

parent 1ecf4da7
...@@ -2,8 +2,18 @@ from django.contrib.auth.models import User ...@@ -2,8 +2,18 @@ from django.contrib.auth.models import User
from django.db import models from django.db import models
# Create your models here. # Create your models here.
from app.User.models import UserFriendship
class FriendshipRequest(models.Model): class FriendshipRequest(models.Model):
user = models.ForeignKey(User, related_name='user_friendship_request_target', user = models.ForeignKey(User, related_name='user_friendship_request_target',
blank=False, null=False, default=None) blank=False, null=False, default=None)
created_by = models.ForeignKey(User, related_name='user_friendship_request_creator', created_by = models.ForeignKey(User, related_name='user_friendship_request_creator',
blank=False, null=False, default=None) blank=False, null=False, default=None)
\ No newline at end of file
def accept(self):
user_friendship = UserFriendship(user=self.user, friend=self.created_by)
user_friendship.save()
user_friendship = UserFriendship(friend=self.user, user=self.created_by)
user_friendship.save()
self.delete()
\ No newline at end of file
# Create your views here. # Create your views here.
from django.shortcuts import get_object_or_404
from requests import Response
from rest_framework import viewsets, permissions from rest_framework import viewsets, permissions
import rest_framework
from rest_framework.decorators import detail_route
from app.Friendship.models import FriendshipRequest from app.Friendship.models import FriendshipRequest
from app.Friendship.serializers import FriendshipRequestSerializer from app.Friendship.serializers import FriendshipRequestSerializer
...@@ -18,4 +22,16 @@ class FriendshipRequestViewSet(viewsets.ModelViewSet): ...@@ -18,4 +22,16 @@ class FriendshipRequestViewSet(viewsets.ModelViewSet):
queryset = FriendshipRequest.objects.filter(user=user).all() queryset = FriendshipRequest.objects.filter(user=user).all()
page = self.paginate_queryset(queryset) page = self.paginate_queryset(queryset)
serializer = FriendshipRequestSerializer(page, many=True, context={'request': request}) serializer = FriendshipRequestSerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializer.data) return self.get_paginated_response(serializer.data)
\ No newline at end of file
@detail_route()
def accept(self, request, pk=None):
friendship_request = get_object_or_404(self.queryset, pk=pk)
friendship_request.accept()
return Response(status=rest_framework.status.HTTP_200_OK)
@detail_route()
def decline(self, request, pk=None):
friendship_request = get_object_or_404(self.queryset, pk=pk)
friendship_request.delete()
return Response(status=rest_framework.status.HTTP_200_OK)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment