예제 #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)
예제 #2
0
 def get_keg_or_bust(self, keg_id):
     keg = Keg.get_by_key_name(keg_id)
     if not keg:
         keg = Keg.get(keg_id)
     if not keg:
         raise webob.exc.HTTPNotFound()
     return keg
예제 #3
0
 def post(self):
     beer_id = self.request.params['beer']
     if Keg.get_by_key_name(name):
         raise Conflict(name, webapp2.uri_for('keg', keg_id=name))
     latitude = self.request.params['latitude']
     longitude = self.request.params['longitude']
     a_keg = Keg(key_name=name, geo_location=db.GeoPt(latitude, longitude))
     a_keg.put()
     webapp2.redirect_to('keg', keg_id=name)