Make the structure that we pass over the channel or pseudo-channel called an "event".

Make the string that we pass through pubsub called a "message".
This commit is contained in:
Ian Gulliver
2014-05-09 15:00:48 -07:00
parent e6885042f5
commit 6a6fdc1c41
3 changed files with 36 additions and 37 deletions

25
api.py
View File

@@ -30,21 +30,20 @@ def CreateChannel(google_user, client, args):
token = channel.create_channel(
client_id=str(client.key()),
duration_minutes=config.CHANNEL_DURATION_SECONDS / 60)
messages = [x.ToMessage()
for x in client.parent().GetStateEntries()]
events = [x.ToEvent() for x in client.parent().GetStateEntries()]
if google_user:
messages.append({
'message_type': 'login',
events.append({
'event_type': 'login',
'google_user': google_user.email(),
})
else:
messages.append({
'message_type': 'logout',
events.append({
'event_type': 'logout',
})
return {
'token': token,
'messages': messages,
'events': events,
}
@@ -79,11 +78,11 @@ def SetValue(google_user, client, args):
public=public)
entry.put()
msg = entry.ToMessage()
event = entry.ToEvent()
clients = (models.Client.all()
.ancestor(client.parent_key()))
for client in clients:
client.SendMessage(msg)
client.SendEvent(event)
return {}
@@ -93,7 +92,7 @@ def Subscribe(google_user, client, args):
messages = args.get('messages', 0)
return {
'messages': models.Subscription.FindOrCreate(subject, client, messages),
'events': models.Subscription.FindOrCreate(subject, client, messages),
}
@@ -117,7 +116,7 @@ class APIWrapper(webapp2.RequestHandler):
ret = {
'status': 'ok',
'responses': [],
'messages': [],
'events': [],
}
for command in self.request_json['commands']:
callback = self._COMMANDS[command['command']]
@@ -125,9 +124,9 @@ class APIWrapper(webapp2.RequestHandler):
self.verified_google_user,
self.client,
command.get('arguments', {}))
# Magic: if result contains "messages", haul them up a level so the
# Magic: if result contains "events", haul them up a level so the
# client can see them as a single stream.
ret['messages'].extend(result.pop('messages', []))
ret['events'].extend(result.pop('events', []))
ret['responses'].append(result)
return ret