]> git.parisson.com Git - django-jqchat.git/commitdiff
Don't trap exceptions in the AJAX call handling code - let them propagate.
authorrichardbarran <richardbarran@8369a704-5b4a-11de-992f-fdd7e25b9163>
Sat, 31 Oct 2009 19:16:27 +0000 (19:16 +0000)
committerrichardbarran <richardbarran@8369a704-5b4a-11de-992f-fdd7e25b9163>
Sat, 31 Oct 2009 19:16:27 +0000 (19:16 +0000)
git-svn-id: http://django-jqchat.googlecode.com/svn/trunk@14 8369a704-5b4a-11de-992f-fdd7e25b9163

jqchat/views.py

index 1fb4c540188630d5a161644b7afb24043a0f8a94..ea9a2b0bf6698514c673f9786e036deffcba4fd8 100644 (file)
@@ -76,68 +76,64 @@ class Ajax(object):
     # Instead they have to be attached to child classes.
     def __call__(self, request, id):
 
-        try:
-            if not request.user.is_authenticated():
-                return HttpResponseBadRequest('You need to be logged in to access the chat system.')
-        
-            StatusCode = 0 # Default status code is 0 i.e. no new data.
-            self.request = request
-            self.request_time = int(self.request.REQUEST['time'])
-            self.ThisRoom = Room.objects.get(id=id)
-            NewDescription = None
+        if not request.user.is_authenticated():
+            return HttpResponseBadRequest('You need to be logged in to access the chat system.')
     
-            if self.request.method == "POST":
-                # User has sent new data.
-                action = self.request.POST['action']
-        
-                if action == 'postmsg':
-                    msg_text = self.request.POST['message']
-        
-                    if len(msg_text.strip()) > 0: # Ignore empty strings.
-                        Message.objects.create_message(self.request.user, self.ThisRoom, escape(msg_text))
-            else:
-                # If a GET, make sure that no action was specified.
-                if self.request.GET.get('action', None):
-                    return HttpResponseBadRequest('Need to POST if you want to send data.')
+        StatusCode = 0 # Default status code is 0 i.e. no new data.
+        self.request = request
+        self.request_time = int(self.request.REQUEST['time'])
+        self.ThisRoom = Room.objects.get(id=id)
+        NewDescription = None
+
+        if self.request.method == "POST":
+            # User has sent new data.
+            action = self.request.POST['action']
     
-            # If using Pinax we can get the user's timezone.
-            try:
-                user_tz = self.request.user.account_set.all()[0].timezone
-            except:
-                user_tz = settings.TIME_ZONE
-        
-            # Extra JSON string to be spliced into the response.
-            CustomPayload = self.ExtraHandling()
-            if CustomPayload:
-                StatusCode = 1
-        
-            # Get new messages - do this last in case the ExtraHandling has itself generated
-            # new messages. 
-            NewMessages = self.ThisRoom.message_set.filter(unix_timestamp__gt=self.request_time)
-            if NewMessages:
-                StatusCode = 1
-
-            # Only keep the last X messages.
-            l = len(NewMessages)
-            if l > JQCHAT_DISPLAY_COUNT:
-                NewMessages = NewMessages[l-JQCHAT_DISPLAY_COUNT:]
-        
-            response =  render_to_response('jqchat/chat_payload.json',
-                                      {'current_unix_timestamp': int(time.time()),
-                                       'NewMessages': NewMessages,
-                                       'StatusCode': StatusCode,
-                                       'NewDescription': NewDescription,
-                                       'user_tz': user_tz,
-                                       'CustomPayload': CustomPayload,
-                                       'TimeDisplayFormat': DATE_FORMAT
-                                       },
-                                      context_instance=RequestContext(self.request))
-            response['Content-Type'] = 'text/plain; charset=utf-8'
-            response['Cache-Control'] = 'no-cache'
-            return response
+            if action == 'postmsg':
+                msg_text = self.request.POST['message']
+    
+                if len(msg_text.strip()) > 0: # Ignore empty strings.
+                    Message.objects.create_message(self.request.user, self.ThisRoom, escape(msg_text))
+        else:
+            # If a GET, make sure that no action was specified.
+            if self.request.GET.get('action', None):
+                return HttpResponseBadRequest('Need to POST if you want to send data.')
+
+        # If using Pinax we can get the user's timezone.
+        try:
+            user_tz = self.request.user.account_set.all()[0].timezone
         except:
-            import traceback
-            print traceback.format_exc()
+            user_tz = settings.TIME_ZONE
+    
+        # Extra JSON string to be spliced into the response.
+        CustomPayload = self.ExtraHandling()
+        if CustomPayload:
+            StatusCode = 1
+    
+        # Get new messages - do this last in case the ExtraHandling has itself generated
+        # new messages. 
+        NewMessages = self.ThisRoom.message_set.filter(unix_timestamp__gt=self.request_time)
+        if NewMessages:
+            StatusCode = 1
+
+        # Only keep the last X messages.
+        l = len(NewMessages)
+        if l > JQCHAT_DISPLAY_COUNT:
+            NewMessages = NewMessages[l-JQCHAT_DISPLAY_COUNT:]
+    
+        response =  render_to_response('jqchat/chat_payload.json',
+                                  {'current_unix_timestamp': int(time.time()),
+                                   'NewMessages': NewMessages,
+                                   'StatusCode': StatusCode,
+                                   'NewDescription': NewDescription,
+                                   'user_tz': user_tz,
+                                   'CustomPayload': CustomPayload,
+                                   'TimeDisplayFormat': DATE_FORMAT
+                                   },
+                                  context_instance=RequestContext(self.request))
+        response['Content-Type'] = 'text/plain; charset=utf-8'
+        response['Cache-Control'] = 'no-cache'
+        return response
 
     def ExtraHandling(self):
         """We might want to receive/send extra data in the Ajax calls.