Пример #1
0
 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)
     )
Пример #2
0
	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)
Пример #3
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)