コード例 #1
0
ファイル: push.py プロジェクト: alanf/PushmasterApp
    def get(self, push_id):
        push = None

        if push_id == 'current':
            push = query.current_push()
            self.redirect(push.uri if push else '/pushes')
            return

        try:
            push = model.Push.get(push_id)
        except BadKeyError:
            raise HTTPStatusCode(httplib.NOT_FOUND)

        current_user = users.get_current_user()
        pending_requests = query.pending_requests(not_after=util.tznow().date()) if current_user == push.owner else []

        if 'application/json' in self.get_request_header_list('Accept', default='*/*'):
            requests = query.push_requests(push)
            push_div = self.render_push_div(current_user, push, requests, pending_requests)
            response = {'push': dict(key=unicode(push.key()), state=push.state), 'html': unicode(push_div)}
            self.response.headers['Vary'] = 'Accept'
            self.response.headers['Content-Type'] = 'application/json'
            self.response.headers['Cache-Control'] = 'no-store'
            self.response.out.write(json.dumps(response))

        else:
            doc = self.render_doc(current_user, push, pending_requests)
            self.response.out.write(unicode(doc))
コード例 #2
0
ファイル: api.py プロジェクト: alanf/PushmasterApp
    def get(self, push_id):
        push = None

        if push_id == 'current':
            push = query.current_push()
            self.redirect(push.api_uri if push else '/pushes')
            return

        try:
            push = model.Push.get(push_id)
        except BadKeyError:
            raise HTTPStatusCode(httplib.NOT_FOUND)

        current_user = users.get_current_user()
        pending_requests = query.pending_requests(not_after=util.tznow().date()) if current_user == push.owner else []

        requests = query.push_requests(push)

        push_info = self.render_push_info(push, requests)
        request_info = self.render_request_info(pending_requests)

        response = {'push': push_info, 'pending_requests': request_info}

        self.response.headers['Vary'] = 'Accept'
        self.response.headers['Content-Type'] = 'application/json'
        self.response.headers['Cache-Control'] = 'no-store'

        self.response.out.write(json.dumps(response))
コード例 #3
0
ファイル: push.py プロジェクト: Yelp/PushmasterApp
    def get(self, push_id):
        push = None

        if push_id == 'current':
            push = query.current_push()
            self.redirect(push.uri if push else '/pushes')
            return

        try:
            push = model.Push.get(push_id)
        except BadKeyError:
            raise HTTPStatusCode(httplib.NOT_FOUND)

        current_user = users.get_current_user()
        pending_requests = query.pending_requests(not_after=util.tznow().date()) if current_user == push.owner else []
        self.render(push, current_user, pending_requests)