From 507a3ecab3ca8fbac0eb42c1acb1844c4112f9fd Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Wed, 16 Oct 2013 14:57:12 -0400 Subject: [PATCH] Allow overwriting of APNS as iOS will send it on each startup (imported from commit 4a22f9f37d550b6c2e06f543434466453e196458) --- zerver/views/__init__.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/zerver/views/__init__.py b/zerver/views/__init__.py index 2240a61205..f391b53802 100644 --- a/zerver/views/__init__.py +++ b/zerver/views/__init__.py @@ -2705,11 +2705,12 @@ def add_apns_device_token(request, user_profile, token=REQ): if token == '' or len(token) > 255: return json_error('Empty or invalid length APNS token') - try: - apns_token = AppleDeviceToken(user=user_profile, token=token) - apns_token.save() - except IntegrityError: - return json_error("APNS token already exists") + # The iOS app receives the token on each startup, so overwrite with our + # latest value + token, created = AppleDeviceToken.objects.get_or_create(user=user_profile, token=token) + if not created: + token.last_updated = now() + token.save(update_fields=['last_updated']) return json_success()