aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site
diff options
context:
space:
mode:
authorGravatar RohanJnr <[email protected]>2020-10-07 09:38:45 +0530
committerGravatar RohanJnr <[email protected]>2020-10-07 09:38:45 +0530
commit7b2275dd0888cc4e91866921ab3be5799eb44986 (patch)
tree8d370bc7c711fdeec5a7406be25deffea07874b6 /pydis_site
parentrefactor tests to use updated changes and add tests for UserListPagination (diff)
use more efficient code
Diffstat (limited to 'pydis_site')
-rw-r--r--pydis_site/apps/api/serializers.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py
index 51afbe73..ed6717e7 100644
--- a/pydis_site/apps/api/serializers.py
+++ b/pydis_site/apps/api/serializers.py
@@ -262,12 +262,14 @@ class UserListSerializer(ListSerializer):
def create(self, validated_data: list) -> list:
"""Override create method to optimize django queries."""
new_users = []
- request_user_ids = [user["id"] for user in validated_data]
+ seen = set()
for user_dict in validated_data:
- if request_user_ids.count(user_dict["id"]) > 1:
- raise ValidationError({"id": f"User with ID {user_dict['id']} "
- f"given multiple times."})
+ if user_dict["id"] in seen:
+ raise ValidationError(
+ {"id": f"User with ID {user_dict['id']} given multiple times."}
+ )
+ seen.add(user_dict["id"])
new_users.append(User(**user_dict))
return User.objects.bulk_create(new_users, ignore_conflicts=True)