1.1 --- a/actions/PostMessage.py Mon Jan 13 00:18:40 2014 +0100
1.2 +++ b/actions/PostMessage.py Sun Jan 26 00:44:09 2014 +0100
1.3 @@ -28,27 +28,37 @@
1.4 # Handle each update.
1.5
1.6 all_successful = True
1.7 + any_successful = False
1.8
1.9 for update in message.updates:
1.10
1.11 # Handle a single part.
1.12
1.13 if not is_collection(update):
1.14 - all_successful = all_successful and self.handle_message_parts(message, [update], update)
1.15 + success = self.handle_message_parts(message, [update], update)
1.16
1.17 # Or a collection of alternative representations for a single
1.18 # update.
1.19
1.20 else:
1.21 - all_successful = all_successful and self.handle_message_parts(message, update.get_payload(), update)
1.22 + success = self.handle_message_parts(message, update.get_payload(), update)
1.23 +
1.24 + all_successful = all_successful and success
1.25 + any_successful = any_successful or success
1.26
1.27 # Default output.
1.28
1.29 - writeHeaders(request, "text/plain", getMetadata(self.page), "200 OK")
1.30 + if any_successful:
1.31 + writeHeaders(request, "text/plain", getMetadata(self.page), "200 OK")
1.32 + else:
1.33 + writeHeaders(request, "text/plain", getMetadata(self.page), "403 Forbidden")
1.34 +
1.35 if all_successful:
1.36 request.write("All updates were successful.")
1.37 + elif any_successful:
1.38 + request.write("Some updates were unsuccessful.")
1.39 else:
1.40 - request.write("Some updates were unsuccessful.")
1.41 + request.write("No updates were successful.")
1.42
1.43 def handle_message_parts(self, message, parts, update):
1.44