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