Commit 396d4690f183b30e5be49668eb69e4736ec12c90

Authored by vitor-amartins
1 parent 336aaa96

Added suport to provide (un)favorite message action on app

Showing 2 changed files with 49 additions and 2 deletions   Show diff stats
api/views.py
... ... @@ -21,7 +21,7 @@ from django.db.models import Q
21 21 from security.models import Security
22 22  
23 23 from chat.serializers import ChatSerializer
24   -from chat.models import TalkMessages, Conversation, ChatVisualizations
  24 +from chat.models import TalkMessages, Conversation, ChatVisualizations, ChatFavorites
25 25  
26 26 from log.models import Log
27 27 from log.mixins import LogMixin
... ... @@ -473,4 +473,51 @@ class ChatViewset(viewsets.ModelViewSet, LogMixin):
473 473  
474 474 response = json.dumps(info)
475 475  
  476 + return HttpResponse(response)
  477 +
  478 + @csrf_exempt
  479 + @list_route(methods = ['POST'], permissions_classes = [IsAuthenticated])
  480 + def favorite_messages(self, request):
  481 + username = request.data['email']
  482 + favor = request.data['favor']
  483 + message_id = int(request.data['id'])
  484 +
  485 + user = User.objects.get(email = username)
  486 +
  487 + message = get_object_or_404(TalkMessages, id = message_id)
  488 +
  489 + response = ""
  490 +
  491 + if favor == "true":
  492 + if not ChatFavorites.objects.filter(Q(user = user) & Q(message__id = message_id)).exists():
  493 + #Insert on table
  494 + ChatFavorites.objects.create(message = message, user = user)
  495 +
  496 + info = {}
  497 +
  498 + info["message"] = ""
  499 + info["type"] = ""
  500 + info["title"] = ""
  501 + info["success"] = True
  502 + info["number"] = 1
  503 + info['extra'] = 0
  504 +
  505 + response = json.dumps(info)
  506 +
  507 + elif favor == "false":
  508 + if ChatFavorites.objects.filter(Q(user = user) & Q(message__id = message_id)).exists():
  509 + #Delete row
  510 + ChatFavorites.objects.filter(message = message, user = user).delete()
  511 +
  512 + info = {}
  513 +
  514 + info["message"] = ""
  515 + info["type"] = ""
  516 + info["title"] = ""
  517 + info["success"] = True
  518 + info["number"] = 1
  519 + info['extra'] = 0
  520 +
  521 + response = json.dumps(info)
  522 +
476 523 return HttpResponse(response)
477 524 \ No newline at end of file
... ...
chat/serializers.py
... ... @@ -22,4 +22,4 @@ class ChatSerializer(serializers.ModelSerializer):
22 22  
23 23 class Meta:
24 24 model = TalkMessages
25   - fields = ('text', 'user', 'subject', 'image_url', 'create_date', 'favorite')
  25 + fields = ('text', 'user', 'subject', 'image_url', 'create_date', 'favorite', 'id')
... ...