def post(self, url): if UserManager.get_current_user() == None: self.redirect('/user-not-found') return message = 'ok' project_key_string = self.request.get('project-key') action_key_string = self.request.get('action-detail-key') endpoint = self.request.get('endpoint') subscription_id = self.request.get('subscription-id') email = UserManager.get_email() if (project_key_string == '' or project_key_string == None): message = 'No project key provided' elif (action_key_string == '' or action_key_string == None): message = 'No action key provided' elif (endpoint == '' or endpoint == None): message = 'No endpoint provided' else: project_key = ndb.Key( Project, int(project_key_string), ) project = project_key.get() if UserManager.get_user_has_privilege_for_operation(project): action_key = ndb.Key(Project, int(project_key_string), Action, int(action_key_string)) subscription = Subscription.query(ancestor=action_key).filter( ndb.query.AND( Subscription.email==email, Subscription.endpoint==endpoint ) ).get() if url == 'unsubscribe' and subscription is not None: ndb.delete_multi([subscription.key]) elif url == 'subscribe' and subscription is None: message = 'new' subscription = Subscription( parent=action_key, endpoint=endpoint, email=email) subscription.put() else: message = 'Permission denied.' template = JINJA_ENVIRONMENT.get_template('templates/_endpoints/action-update.json') self.response.write(template.render({ "message": message }))
def get(self): # Enable CORS self.response.headers.add_header("Access-Control-Allow-Origin", "*") project_key_string = self.request.get('project-key') action_key_string = self.request.get('action-key') if project_key_string == '' or project_key_string is None: self.response.write('No project key') return elif action_key_string == '' or action_key_string is None: self.response.write('No action key') return action_key = ndb.Key(Project, int(project_key_string), Action, int(action_key_string)) subscriptions = Subscription.query( ancestor=action_key) for s in subscriptions: endpoint_parts = s.endpoint.split('/') subscription_id = endpoint_parts[len(endpoint_parts) - 1] # Pop a message in the store subscription_message = SubscriptionMessage( subscription_id=subscription_id, datetime=datetime.today(), title='Wowser!', message='Your new Speed Index is 3,301 (+208)', url='/project/5629499534213120/6473924464345088/') subscription_message.put() PushMessage.ping(s.endpoint)
def get(self): # Enable CORS self.response.headers.add_header("Access-Control-Allow-Origin", "*") project_key_string = self.request.get('project-key') action_key_string = self.request.get('action-key') if project_key_string == '' or project_key_string is None: self.response.write('No project key') return elif action_key_string == '' or action_key_string is None: self.response.write('No action key') return action_key = ndb.Key(Project, int(project_key_string), Action, int(action_key_string)) subscriptions = Subscription.query(ancestor=action_key) for s in subscriptions: endpoint_parts = s.endpoint.split('/') subscription_id = endpoint_parts[len(endpoint_parts) - 1] # Pop a message in the store subscription_message = SubscriptionMessage( subscription_id=subscription_id, datetime=datetime.today(), title='Wowser!', message='Your new Speed Index is 3,301 (+208)', url='/project/5629499534213120/6473924464345088/') subscription_message.put() PushMessage.ping(s.endpoint)