Пример #1
0
    def get(self):
        message_type = ""
        message = ""
        message_code = self.request.get("message")

        if message_code and Message.message.__contains__(message_code):
            message = Message.message[message_code]

            if message_code.startswith("e"):
                message_type = "error"
            else:
                message_type = "success"

        user = users.get_current_user()
        user_email = user.email()

        access_link = users.create_logout_url("/")

        trips = list(Trip.query().order(Trip.start))

        template_values = {
            "info": AppInfo,
            "user_email": user_email,
            "access_link": access_link,
            "trips": trips,
            "section": "browse",
            "message_type": message_type,
            "message": message
        }

        jinja = jinja2.get_jinja2(app=self.app)
        self.response.write(jinja.render_template("views/trips/browse.html", **template_values))
Пример #2
0
    def post(self):
        request = to_json(self.request.body)

        # Verify the token on the Google servers
        url = "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={}".format(request.get('token'))
        result = urlfetch.fetch(url=url,
            method=urlfetch.GET,
        )

        if result.status_code == 200:
            content = to_json(result.content)
        #     Need to check the 'aud' property once we have a user to actually test this stuff with.
        #     For now we'll just assume everything worked and return a formatted new user

            user = User.query(User.email==content.get('email')).get()

            if user is None:
                # Need to create a new user
                user = User()
                user.email = content.get('email')
                user.put()

                self.response.status_int = 200
                self.response.headers['Access-Control-Allow-Origin'] = "http://www.myvoyagr.co"
                self.response.write(user.format())
            else:
                # Get all the trips associated with the user and add it to the response
                trips = {}
                trip_qry = Trip.query(ancestor=user.key).fetch()
                for trip in trip_qry:
                    trips[trip.name] = trip.key.id()
                self.response.status_int = 200
                self.response.headers['Access-Control-Allow-Origin'] = "http://www.myvoyagr.co"
                self.response.write({'user': user.format(), 'trips' : trips})
                return

        else:
            self.response.status_int = 400
            self.response.headers['Access-Control-Allow-Origin'] = "http://www.myvoyagr.co"
            self.response.write({'error': 'There was an error authenticating the user'})
            return
Пример #3
0
    def get(self, user_id):
        if user_id is None:
            self.response.status_int = 400
            self.response.write({'error': 'Missing user id'})
            return

        user = ndb.Key(urlsafe=user_id).get()

        if user is None:
            self.response.status_int = 400
            self.response.write({'error': 'No user exists with that ID'})
            return

        # Get all the trips associated with the user and add it to the response
        trips = {}
        trip_qry = Trip.query(ancestor=user.key).fetch()
        for trip in trip_qry:
            trips[trip.name] = trip.key.urlsafe()
        self.response.status_int = 200
        self.response.headers['Access-Control-Allow-Origin'] = "https://www.myvoyagr.co"
        self.response.write({'user': user.format(), 'trips' : trips})
        return
Пример #4
0
    def get(self):
        user = users.get_current_user()
        user_email = user.email()

        message_type = ""
        message = ""
        message_code = self.request.get("message")

        if message_code and Message.message.__contains__(message_code):
            message = Message.message[message_code]

            if message_code.startswith("e"):
                message_type = "error"
            else:
                message_type = "success"

        access_link = users.create_logout_url("/")

        trips = list(Trip.query(Trip.owner == user_email).order(Trip.start))

        all_collaborations = dict()
        for t in trips:
            trip_collaborations = list(
                Collaboration.query(Collaboration.trip_key == t.key.id()).order(Collaboration.date))
            all_collaborations[t.key.id()] = trip_collaborations

        template_values = {
            "info": AppInfo,
            "user_email": user_email,
            "access_link": access_link,
            "trips": trips,
            "section": "manage",
            "collaborations": all_collaborations,
            "message_type": message_type,
            "message": message
        }

        jinja = jinja2.get_jinja2(app=self.app)
        self.response.write(jinja.render_template("views/trips/manage.html", **template_values))