Пример #1
0
    def get(self):
        user = users.get_current_user()

        if user:
            # Filter by the google appengine user id property.
            active_user = User.query(User.google_id == user.user_id()).fetch(1)

            if not active_user:
                # If we couldn't find a user it means that is the first time it uses the application.
                # We just need to create a new entity with the get_current_user() information.
                active_user = User(email=user.email(), username=user.nickname(), google_id=user.user_id())
                active_user.put()
                logging.info("New user created. Email address is: %s", active_user.email)
            else:
                active_user = active_user[0]

            token = channel.create_channel(str(active_user.key.id()))
            memcache.add(key=str(active_user.key.id()), value=token)

            template_vars = {
                'user': active_user,
                'token': token,
                'logout_url': users.create_logout_url('/welcome'),
                'boards': Board.query().order(Board.created_at)

            }
            template = JINJA_ENVIRONMENT.get_template('root.html')
            self.response.write(template.render(template_vars))
        else:
            self.redirect('/welcome')
Пример #2
0
import webapp2

from handlers import web
from handlers import api
from handlers import channel

from models.board import Board

# We need to initialize the default board on the application startup.
# We search for them, in case they are not present, we create them.
if not Board.query(Board.name == 'To Do').fetch(1):
    Board(name='To Do').put()

if not Board.query(Board.name == 'In Progress').fetch(1):
    Board(name='In Progress').put()

if not Board.query(Board.name == 'Done').fetch(1):
    Board(name='Done').put()

# Configure the WSGIApplication routes
app = webapp2.WSGIApplication([
    webapp2.Route(r'/', handler=web.RootHandler, methods=['GET']),
    webapp2.Route(r'/welcome', handler=web.WelcomeHandler, methods=['GET']),
    webapp2.Route(r'/api/cards', handler=api.CardHandler, methods=['POST', 'GET']),
    webapp2.Route(r'/api/cards/<card_id>', handler=api.GetCardHandler, methods=['GET']),
    webapp2.Route(r'/api/cards/<card_id>', handler=api.UpdateCardHandler, methods=['PUT']),
    webapp2.Route(r'/api/cards/<card_id>', handler=api.DestroyCardHandler, methods=['DELETE']),
    webapp2.Route(r'/_ah/channel/connected/', handler=channel.ConnectedHandler, methods=['POST']),
    webapp2.Route(r'/_ah/channel/disconnected/', handler=channel.DisconnectedHandler, methods=['POST'])
], debug=True)