diff --git a/api.py b/api.py index 91111f5..2f36a98 100644 --- a/api.py +++ b/api.py @@ -37,13 +37,11 @@ def CreateChannel(google_user, client, client_address, instance_id, args): if google_user: events.append({ 'event_type': 'login', - 'profile': str(models.Client.profile.get_value_for_datastore(client)), 'google_user': google_user.email(), }) else: events.append({ 'event_type': 'logout', - 'profile': str(models.Client.profile.get_value_for_datastore(client)), }) return { @@ -195,8 +193,11 @@ class APIWrapper(webapp2.RequestHandler): @security.weak_security_checks @session.session_required def post(self): + profile_str = str( + models.Client.profile.get_value_for_datastore(self.client)) ret = { 'status': 'ok', + 'profile': profile_str, 'responses': [], 'events': [], } diff --git a/static/cosmopolite.js b/static/cosmopolite.js index b8d5d3a..3cb941f 100644 --- a/static/cosmopolite.js +++ b/static/cosmopolite.js @@ -172,7 +172,6 @@ Cosmopolite.typeEvent_; /** * @typedef {{event_type: string, - * profile: string, * google_user: string}} * @private */ @@ -180,8 +179,7 @@ Cosmopolite.typeLogin_; /** - * @typedef {{event_type: string, - * profile: string}} + * @typedef {{event_type: string}} * @private */ Cosmopolite.typeLogout_; @@ -842,6 +840,14 @@ Cosmopolite.prototype.onRPCResponse_ = return; } + /** @type {string} */ + this.profile_ = data['profile']; + this.trackEvent('set', 'userId', this.profile_); + var resolve; + while (resolve = this.profilePromises_.pop()) { + resolve(this.profile_); + } + for (var i = 0; i < data['responses'].length; i++) { var response = data['responses'][i]; if (response['result'] == 'retry') { @@ -1298,15 +1304,6 @@ Cosmopolite.prototype.onServerEvent_ = function(e) { if (this.shutdown_) { return; } - if (e['profile']) { - /** @type {string} */ - this.profile_ = e['profile']; - this.trackEvent('set', 'userId', this.profile_); - this.profilePromises_.forEach(function(resolve) { - resolve(this.profile_); - }, this); - this.profilePromises_.length = 0; - } switch (e['event_type']) { case 'close': this.onClose_();