Ejemplo n.º 1
0
	def get(self):
		biz_id = self.request.get('biz_id')
		biz_info = get_biz_info(biz_id)

		if biz_info is None:
			self.error(404)
			self.response.out.write('Biz not found')
			return

		self.response.out.write(json.dumps(biz_info))
Ejemplo n.º 2
0
    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)