Exemple #1
0
 def post(self, keg_id):
     keg = self.get_keg_or_bust(keg_id)
     keg.geo_location.lat = self.request.params.get('latitude',
                                                    keg.geo_location.lat)
     keg.geo_location.lon = self.request.params.get('longitude',
                                                    keg.geo_location.lon)
     keg.photo_url = self.request.params.get('photo_url', keg.photo_url)
     keg_id = self.request.params.get('keg')
     if keg_id:
         keg = Keg.get_by_key_name(keg_id)
         if not keg:
             raise InvalidParameterException(
                 param='keg',
                 value=keg_id,
                 description='The given keg could not be located')
         if keg.empty():
             raise InvalidParameterException(
                 param='keg',
                 value=keg_id,
                 description='The given keg is reported empty')
         query = Keg.all(keys_only=True).filter('keg =', keg)
         keys = [key for key in query]
         if keys and not keg.key() in keys:
             raise InvalidParameterException(
                 param='keg',
                 value=keg_id,
                 description=
                 'The given keg is already associated to another keg')
         keg.put()
         keg.keg = keg.key()
     keg.put()
     webapp2.redirect_to('keg', keg_id=keg_id)
Exemple #2
0
 def get(self):
    full = self.request.GET.get('full', False)
    limit = self.request.params.get('limit', 20)
    offset = self.request.params.get('offset', 0)
    all_kegs = Keg.all(keys_only=not full)
    total = all_kegs.count(read_policy=db.EVENTUAL_CONSISTENCY, deadline=5)
    payload = [a_keg for a_keg in all_kegs.run(offset=offset, limit=min(limit, total))]
    if not payload:
       raise webob.exc.HTTPNotFound()
    data = {}
    if not full:
       data['kegs'] = [webapp2.uri_for('keg', keg_id=keg.name()) for keg in all_kegs]
    else:
       data['kegs'] = [funcs.convert_model(keg) for keg in all_kegs]
    data['meta'] = funcs.meta_ok()
    self.response.write(json.json.dumps(data))