コード例 #1
0
  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
    }))