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 |