From 368c704b811a30c7427d890b12c94b77de3e36e6 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Thu, 19 Jun 2014 23:36:47 -0700 Subject: [PATCH] Translate events in pre-channel subscribe responses. --- api.py | 2 +- lib/models.py | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/api.py b/api.py index 2c103ed..0ea9db2 100644 --- a/api.py +++ b/api.py @@ -137,7 +137,7 @@ def Subscribe(google_user, client, client_address, instance_id, args): # Probably a race with the channel opening return { 'result': 'retry', - 'events': subject.GetEvents(messages, last_id), + 'events': subject.GetEvents(messages, last_id, args['subject']), } return { diff --git a/lib/models.py b/lib/models.py index 1f48bb3..d7544fb 100644 --- a/lib/models.py +++ b/lib/models.py @@ -357,13 +357,17 @@ class Subject(db.Model): for event in events] @db.transactional() - def GetEvents(self, messages, last_id): + def GetEvents(self, messages, last_id, request): events = [m.ToEvent() for m in self.GetPins()] if messages: events.extend(m.ToEvent() for m in self.GetRecentMessages(messages)) if last_id is not None: events.extend(m.ToEvent() for m in self.GetMessagesSince(last_id)) - return events + + readable_only_by_me = (request.get('readable_only_by') == 'me') + writable_only_by_me = (request.get('writable_only_by') == 'me') + return self.TranslateEvents( + events, readable_only_by_me, writable_only_by_me) class Subscription(db.Model): @@ -388,9 +392,7 @@ class Subscription(db.Model): .fetch(1)) if not subscriptions: cls(parent=subject, instance=instance).put() - return subject.TranslateEvents( - subject.GetEvents(messages, last_id), - readable_only_by_me, writable_only_by_me) + return subject.GetEvents(messages, last_id, request) @classmethod @db.transactional()