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 | 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 | ... | ... |