コード例 #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
    }))
コード例 #2
0
ファイル: push.py プロジェクト: Captainkjdh/big-rig
  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)
コード例 #3
0
    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)