Translate events in pre-channel subscribe responses.

This commit is contained in:
Ian Gulliver
2014-06-19 23:36:47 -07:00
parent 3c452dabf3
commit 368c704b81
2 changed files with 8 additions and 6 deletions

2
api.py
View File

@@ -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 {

View File

@@ -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()