From 396d4690f183b30e5be49668eb69e4736ec12c90 Mon Sep 17 00:00:00 2001 From: vitor-amartins Date: Tue, 10 Oct 2017 20:31:59 -0300 Subject: [PATCH] Added suport to provide (un)favorite message action on app --- api/views.py | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- chat/serializers.py | 2 +- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/api/views.py b/api/views.py index 5f70571..52e58f4 100644 --- a/api/views.py +++ b/api/views.py @@ -21,7 +21,7 @@ from django.db.models import Q from security.models import Security from chat.serializers import ChatSerializer -from chat.models import TalkMessages, Conversation, ChatVisualizations +from chat.models import TalkMessages, Conversation, ChatVisualizations, ChatFavorites from log.models import Log from log.mixins import LogMixin @@ -473,4 +473,51 @@ class ChatViewset(viewsets.ModelViewSet, LogMixin): response = json.dumps(info) + return HttpResponse(response) + + @csrf_exempt + @list_route(methods = ['POST'], permissions_classes = [IsAuthenticated]) + def favorite_messages(self, request): + username = request.data['email'] + favor = request.data['favor'] + message_id = int(request.data['id']) + + user = User.objects.get(email = username) + + message = get_object_or_404(TalkMessages, id = message_id) + + response = "" + + if favor == "true": + if not ChatFavorites.objects.filter(Q(user = user) & Q(message__id = message_id)).exists(): + #Insert on table + ChatFavorites.objects.create(message = message, user = user) + + info = {} + + info["message"] = "" + info["type"] = "" + info["title"] = "" + info["success"] = True + info["number"] = 1 + info['extra'] = 0 + + response = json.dumps(info) + + elif favor == "false": + if ChatFavorites.objects.filter(Q(user = user) & Q(message__id = message_id)).exists(): + #Delete row + ChatFavorites.objects.filter(message = message, user = user).delete() + + info = {} + + info["message"] = "" + info["type"] = "" + info["title"] = "" + info["success"] = True + info["number"] = 1 + info['extra'] = 0 + + response = json.dumps(info) + return HttpResponse(response) \ No newline at end of file diff --git a/chat/serializers.py b/chat/serializers.py index d671d14..4a26c26 100644 --- a/chat/serializers.py +++ b/chat/serializers.py @@ -22,4 +22,4 @@ class ChatSerializer(serializers.ModelSerializer): class Meta: model = TalkMessages - fields = ('text', 'user', 'subject', 'image_url', 'create_date', 'favorite') + fields = ('text', 'user', 'subject', 'image_url', 'create_date', 'favorite', 'id') -- libgit2 0.21.2