Commit a76575ca83eeecdd7a1c234448337a0925ea0e6f
1 parent
7c88e109
Exists in
master
and in
2 other branches
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,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 |