예제 #1
0
파일: venues.py 프로젝트: DavidYKay/locool
    def render(self):
        self.req = {}
        self.req['lat'] = self.request.get("lat", default_value='40.73')
        self.req['lng'] = self.request.get("lng", default_value='-73.99')
        self.req['where'] = self.request.get("where") # do not provide a default value
        self.req['when'] = self.request.get("when", default_value=strftime('%m/%d/%Y'))
        self.req['local_meter'] = self.request.get("local", default_value='3')
        self.req['friend_print'] = self.request.get("social", default_value='3')
        self.req['popularity'] = self.request.get("popularity", default_value='3')
        self.req['price'] = self.request.get("price", default_value='3')
        self.req['time_of_day'] = self.request.get("timeofday", default_value='3')

        #req_lat = self.request.get("lat", default_value='40.73')
        #req_lng = self.request.get("lng", default_value='-73.99')
        #req_where = self.request.get("where")
        #req_when = self.request.get("when", default_value=strftime('%m/%d/%Y'))
        #req_local_meter = self.request.get("local", default_value='3')
        #req_friend_print = self.request.get("social", default_value='3')
        #req_popularity = self.request.get("popularity", default_value='3')
        #req_price = self.request.get("price", default_value='3')
        #req_time_of_day = self.request.get("timeofday", default_value='3')
        
        self.req['where'] = urllib.unquote(self.req['where']);
        self.req['when'] = urllib.unquote(self.req['when']);
        self.req['local_meter'] = urllib.unquote(self.req['local_meter']);
        self.req['friend_print'] = urllib.unquote(self.req['friend_print']);
        self.req['popularity'] = urllib.unquote(self.req['popularity']);
        self.req['price'] = urllib.unquote(self.req['price']);
        self.req['time_of_day'] = urllib.unquote(self.req['time_of_day']);
        
        #logging.error('req_lat: ' + str(req['lat']))
        #logging.error('req_lng: ' + str(req['lng']))
        #logging.error('req_where: ' + str(req['where']))
        #logging.error('req_when: ' + str(req_when))
        #logging.error('req_local_meter: ' + str(req_local_meter))
        #logging.error('req_friend_print: ' + str(req_friend_print))
        #logging.error('req_popularity: ' + str(req_popularity))
        #logging.error('req_price: ' + str(req_price))
        #logging.error('req_time_of_day: ' + str(req_time_of_day))

        #data = REST.getYelpVenues(self.req['lat'], self.req['lng'])
        
        logging.debug('QUERYING THE DATABASE FOR VENUES USING: ' + self.req['where'])
        db_venues = db.GqlQuery("SELECT * "
                                    "FROM Venue "
                                    "WHERE location_name = :1", self.req['where'])
        if db_venues.count() == 0:
            logging.debug('DID NOT FIND ANY VENUES WHILE QUERYING THE DATABASE FOR VENUES USING: ' + self.req['where'])
            data = REST.getYelpVenues(self.req['lat'], self.req['lng'], self.req['where'])
            #data = REST.getYelpVenues(req_lat, req_lng, req_where)
            jsonData = simplejson.loads(data)
            venues = self.prepYelpData(jsonData, False)
        else:
            logging.debug('FOUND SOME VENUES WHILE QUERYING THE DATABASE FOR VENUES USING: ' + self.req['where'])
            jsonData = {}
            businesses = []
            for db_venue in db_venues:
                business = {}
                business['name'] = db_venue.name
                business['id'] = db_venue.venue_id
                business['latitude'] = db_venue.lat
                business['longitude'] = db_venue.lng
                business['address1'] = db_venue.address_1
                business['address2'] = db_venue.address_2
                business['address3'] = db_venue.address_3
                business['photo_url'] = db_venue.image_url
                business['local'] = db_venue.local
                business['price'] = db_venue.price
                businesses.append(business)
            jsonData['businesses'] = businesses
            venues = self.prepYelpData(jsonData, True)

        json_result = {}
        json_result['venues'] = venues
        my_response = simplejson.dumps(json_result)
        self.response.out.write(my_response)