def put_fsq_update(shout, venue_id, access_token, state): datetime_now = datetime.datetime.utcnow().isoformat('T') page_update = FSQPageUpdate() page_update.venue_id = venue_id page_update.shout = shout page_update.createdAt = datetime_now page_update.fields = {"shout": shout} if state == CampaignState.PUBLISHED: venue = FSQVenue.collection().find_one({"venue_id": venue_id}) url = "%s/%s" % ("pageupdates", "add") api = FoursquareAPI(access_token) dict = {"pageId": venue["fields"]["venue"]["venuePage"]["id"], "venueId": venue_id, "shout": shout} data = api.request(url, post_args=dict) page_update.fields = data["response"]["pageUpdate"] page_update.update_id = data["response"]["pageUpdate"]["id"] page_update._id = FSQPageUpdate.collection().insert(page_update.serialize()) return page_update
def put_fsq_venue(user_id, brand_name, venue_id): url = "%s/%s" % ("venues", venue_id) brand_obj = get_brand_mapping(user_id, brand_name) api = FoursquareAPI(brand_obj.foursquare["access_token"]) data = api.request(url) v = data["response"] venue = FSQVenue() venue.venue_id = v["venue"]["id"] venue.name = v["venue"]["name"] venue.fields = v dupe_obj = FSQVenue.collection().find_one({"venue_id": v["venue"]["id"]}) if dupe_obj is None: FSQVenue.collection().insert(venue.serialize()) else: FSQVenue.collection().update({"venue_id": v["venue"]["id"]}, venue.serialize()) venue = FSQVenue.unserialize(FSQVenue.collection().find_one({"venue_id": v["venue"]["id"]})) BrandMapping.collection().update({"uid": user_id, "brand_name": brand_name}, {"$push": {"foursquare.venues": v["venue"]["id"]}}) t = Thread(target=load_fsq_tips_to_db, args=(v["venue"]["id"], brand_obj.foursquare["access_token"])) t.setDaemon(False) t.start() return venue