Exemplo n.º 1
0
    def delete(self):
        from google.appengine.ext import ndb
        from appname.person import Person

        urlsafe = self.request.path.rsplit("/", 1)[-1]
        if not urlsafe:
            return

        key = ndb.Key(urlsafe=urlsafe)
        if key.kind != Person._get_kind():
            self.error(500)
            return

        key.delete()
        logging.info("Deleted person with key: %s", urlsafe)
Exemplo n.º 2
0
    def get(self):
        from appname.person import Person

        user_query = self.request.get("query")
        limit = int(self.request.get("limit", 10))

        query = Person.query()
        if user_query:
            search = user_query.strip().lower()
            query = query.filter(Person.n_ >= search)
            query = query.filter(Person.n_ < search + u"\uFFFD")

        if limit > 0:
            query = query.fetch(limit)

        out = [entity.to_dict() for entity in query]
        self.response.out.write(json.dumps(out))
Exemplo n.º 3
0
    def process(self):
        from voluptuous import Schema
        from appname.person import Person
        from appname.person import person_schema

        person = json.loads(self.request.body)
        schema = Schema(person_schema, extra=True)
        try:
            schema(person)
        except:
            logging.exception("validation failed")
            logging.info(person)

        person_entity = Person.from_dict(person)
        person_entity.put()

        out = person_entity.to_dict()
        self.response.out.write(json.dumps(out))