Add support for ephemeral messages that are tied to an open channel, aka "pins".

This commit is contained in:
Ian Gulliver
2014-05-25 23:40:56 -07:00
parent 1e91f5babb
commit 8e7af2f5cf
6 changed files with 363 additions and 14 deletions

View File

@@ -33,23 +33,21 @@ class OnChannelConnect(webapp2.RequestHandler):
class OnChannelDisconnect(webapp2.RequestHandler):
@staticmethod
@db.transactional()
def DeleteInstance(instance_id):
instance = models.Instance.FromID(instance_id)
ret = instance.key()
instance.delete()
return ret
@utils.local_namespace
def post(self):
instance_id = self.request.get('from')
instance_key = self.DeleteInstance(instance_id)
instance = models.Instance.FromID(instance_id)
subscriptions = models.Subscription.all().filter('instance =', instance_key)
subscriptions = models.Subscription.all().filter('instance =', instance)
for subscription in subscriptions:
subscription.delete()
pins = models.Pin.all().filter('instance =', instance)
for pin in pins:
pin.Delete()
instance.delete()
app = webapp2.WSGIApplication([
('/_ah/channel/connected/', OnChannelConnect),