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)