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 }))