def post(self): ''' HTTP POST Method Handler Parameters: None ''' if not users.is_current_user_admin(): self.abort(404) self.load_http_params({ 'name': (str, True), 'adm': (lambda s: ndb.Key(urlsafe=s), True), 'lat': (float, True), 'lon': (float, True) }) b = Business( name=self.params['name'], lat=self.params['lat'], lon=self.params['lon'], admins=[self.params['adm']] ) b.put() qry = User.query(projection=[User.email]).order(User.email) self.render( user_iter=qry.iter(), statusClass='success', status='Succesfully created business "<a href="/business/{}/">{}</a>"'.format(b.key.id(), b.name) )
def post(self, user_id): #try: biz_id = self.request.get('biz') business_gql = Business.gql('where y_business_id = :1', biz_id) if business_gql.count() == 0: business = Business(y_business_id=biz_id) business.put() #self.error(404) #self.response.out.write("biz not found") return else: for biz in business_gql: business = biz break user_gql = User.gql('where name = :1', user_id) if user_gql.count() == 0: #user = User(name=user_id, subscriptions=[]) #user.put() self.error(404) self.response.out.write("user not found") return else: for u in user_gql: user = u if not business.key() in user.subscriptions: user.subscriptions.append(business.key()) user.put() break businesses = self.list_all_subscriptions(user_id) result = {'businesses': businesses} result = json.dumps(result) self.response.out.write(result)
def post(self): user_name = self.request.get("user_name", default_value=None) biz = self.request.get("biz", default_value=None) time = self.request.get("time", default_value=None) if user_name is None: self.error(404) self.response.out.write("user_name required") return if biz is None: self.error(404) self.response.out.write("biz required") return if time is None: self.error(404) self.response.out.write("time required") return biz_name = None biz_rating = None biz_address = None try: biz_info = get_biz_info(biz) if biz_info: biz_name = biz_info["name"] biz_rating = int(biz_info["rating"]) biz_address = biz_info["location"]["display_address"] else: self.error(404) self.response.out.write("Invalid biz ID or Yelp API error") return except: self.error(404) self.response.out.write("Invalid biz ID or Yelp API error") return try: business = None business_gql = Business.gql("where y_business_id = :1", biz) if business_gql.count() == 0: business = Business(y_business_id=biz, name=biz_name, rating=biz_rating, address=biz_address) business.put() else: for biz in business_gql: business = biz break train = None departure_time = datetime.datetime.fromtimestamp(float(time)) train_gql = Train.gql("where business = :1 and departure_time = :2", business, departure_time) if train_gql.count() == 0: train = Train(destination=business, departure_time=departure_time) train.put() else: for t in train_gql: train = t break user = get_user_by_name(user_name) if user is None: user = User(name=user_name, train=train, subscriptions=[]) user.train = train user.put() result = [] if train: result.append(train.get_train_info()) self.response.out.write(json.dumps(result)) except: self.error(404)