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)
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
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)