Don't send pins until a subscription is established, since unpin events never come in that case.

This commit is contained in:
Ian Gulliver
2015-06-07 14:16:54 -07:00
parent 190e1eb182
commit 3995a4d0d9
3 changed files with 5 additions and 7 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 # Probably a race with the channel opening
return { return {
'result': 'retry', 'result': 'retry',
'events': subject.GetEvents(messages, last_id, args['subject']), 'events': subject.GetEvents(messages, last_id, args['subject'], pins=False),
} }
return { return {

View File

@@ -237,14 +237,10 @@ static void cosmo_handle_event(cosmo *instance, json_t *event) {
const char *event_type = json_string_value(json_object_get(event, "event_type")); const char *event_type = json_string_value(json_object_get(event, "event_type"));
if (strcmp(event_type, "message") == 0) { if (strcmp(event_type, "message") == 0) {
cosmo_handle_message(instance, event); cosmo_handle_message(instance, event);
/*
// This can all come back once we have channel support.
} else if (strcmp(event_type, "pin") == 0) { } else if (strcmp(event_type, "pin") == 0) {
cosmo_handle_pin(instance, event); cosmo_handle_pin(instance, event);
// unpin never fires when we're just polling
} else if (strcmp(event_type, "unpin") == 0) { } else if (strcmp(event_type, "unpin") == 0) {
cosmo_handle_unpin(instance, event); cosmo_handle_unpin(instance, event);
*/
} else { } else {
fprintf(stderr, "unknown event type: %s\n", event_type); fprintf(stderr, "unknown event type: %s\n", event_type);
} }

View File

@@ -365,8 +365,10 @@ class Subject(db.Model):
for event in events] for event in events]
@db.transactional() @db.transactional()
def GetEvents(self, messages, last_id, request): def GetEvents(self, messages, last_id, request, pins=True):
events = [m.ToEvent() for m in self.GetPins()] events = []
if pins:
events.extend(m.ToEvent() for m in self.GetPins())
if messages: if messages:
events.extend(m.ToEvent() for m in self.GetRecentMessages(messages)) events.extend(m.ToEvent() for m in self.GetRecentMessages(messages))
if last_id is not None: if last_id is not None: