Commit a76575ca83eeecdd7a1c234448337a0925ea0e6f

Authored by vitor-amartins
1 parent 7c88e109

Improved (un)favorite messages action in the app

Showing 1 changed file with 25 additions and 27 deletions   Show diff stats
api/views.py
... ... @@ -480,44 +480,42 @@ class ChatViewset(viewsets.ModelViewSet, LogMixin):
480 480 def favorite_messages(self, request):
481 481 username = request.data['email']
482 482 favor = request.data['favor']
483   - message_id = int(request.data['id'])
  483 + list_size = int(request.data['list_size'])
484 484  
485 485 user = User.objects.get(email = username)
486 486  
487   - message = get_object_or_404(TalkMessages, id = message_id)
  487 + entries = []
  488 + array_ids = []
488 489  
489   - response = ""
  490 + for i in range(0, list_size):
490 491  
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)
  492 + message_id = int(request.data[str(i)])
495 493  
496   - info = {}
  494 + message = get_object_or_404(TalkMessages, id = message_id)
497 495  
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)
  496 + if favor == "true":
  497 + if not ChatFavorites.objects.filter(Q(user = user) & Q(message__id = message_id)).exists():
  498 + entries.append(ChatFavorites(message = message, user = user))
  499 + elif favor == "false":
  500 + if ChatFavorites.objects.filter(Q(user = user) & Q(message__id = message_id)).exists():
  501 + array_ids.append(message_id)
506 502  
  503 + if favor == "true":
  504 + ChatFavorites.objects.bulk_create(entries)
507 505 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()
  506 + ChatFavorites.objects.filter(message__id__in = (array_ids)).delete()
  507 +
  508 + response = ""
511 509  
512   - info = {}
  510 + info = {}
513 511  
514   - info["message"] = ""
515   - info["type"] = ""
516   - info["title"] = ""
517   - info["success"] = True
518   - info["number"] = 1
519   - info['extra'] = 0
  512 + info["message"] = ""
  513 + info["type"] = ""
  514 + info["title"] = ""
  515 + info["success"] = True
  516 + info["number"] = 1
  517 + info['extra'] = 0
520 518  
521   - response = json.dumps(info)
  519 + response = json.dumps(info)
522 520  
523 521 return HttpResponse(response)
524 522 \ No newline at end of file
... ...