Add a key field to messages and allow lookup of most recent message by key.

This commit is contained in:
Ian Gulliver
2014-05-11 15:43:45 +03:00
parent b7bd396c9b
commit 0575b8918d
4 changed files with 85 additions and 43 deletions

11
api.py
View File

@@ -50,8 +50,9 @@ def CreateChannel(google_user, client, args):
def SendMessage(google_user, client, args):
subject = args['subject']
message = args['message']
key = args.get('key', None)
models.Subject.FindOrCreate(subject).SendMessage(message, client.parent_key())
models.Subject.FindOrCreate(subject).SendMessage(message, client.parent_key(), key)
return {}
@@ -90,10 +91,16 @@ def SetValue(google_user, client, args):
def Subscribe(google_user, client, args):
subject = models.Subject.FindOrCreate(args['subject'])
messages = args.get('messages', 0)
keys = args.get('keys', [])
return {
ret = {
'events': models.Subscription.FindOrCreate(subject, client, messages),
}
for key in keys:
message = models.Subject.GetKey(key)
if message:
ret['events'].append(message)
return ret
def Unsubscribe(google_user, client, args):