Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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