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
@@ -480,44 +480,42 @@ class ChatViewset(viewsets.ModelViewSet, LogMixin): @@ -480,44 +480,42 @@ class ChatViewset(viewsets.ModelViewSet, LogMixin):
480 def favorite_messages(self, request): 480 def favorite_messages(self, request):
481 username = request.data['email'] 481 username = request.data['email']
482 favor = request.data['favor'] 482 favor = request.data['favor']
483 - message_id = int(request.data['id']) 483 + list_size = int(request.data['list_size'])
484 484
485 user = User.objects.get(email = username) 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 elif favor == "false": 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 return HttpResponse(response) 521 return HttpResponse(response)
524 \ No newline at end of file 522 \ No newline at end of file