def put_fb_page(fb_user_obj, brand_name, page_obj): url = "%s" % (page_obj["id"]) page_data = GraphAPI(page_obj["access_token"]).request(url) fb_page = FBPage() fb_page.page_id = page_data["id"] fb_page.name = page_data["name"] page_data.pop("id", None) page_data.pop("name", None) fb_page.fields = page_data def save_obj(page): return FBPage.collection().save(page.serialize()) dupe_obj = FBPage.collection().find_one({"page_id": page_obj["id"]}) if dupe_obj is None: fb_page._id = save_obj(fb_page) else: FBPage.collection().update({"page_id": page_obj["id"]}, fb_page.serialize()) fb_page = FBPage.unserialize(FBPage.collection().find_one({"page_id": page_obj["id"]})) update_brand_mapping(fb_user_obj.u_id, brand_name, "facebook", page_obj["id"], page_obj["access_token"]) t = Thread(target=load_fb_page_to_db, args=(page_obj["id"], page_obj["access_token"])) t.setDaemon(False) t.start() return fb_page
def save_tw_user(user_id, brand_name, key, secret): """ Add twitter account to the unifide user and spawn thread to pull recent tweewts from home timeline """ api, token_key, token_secret = get_api(key, secret) twUser_obj = TWUser() twUser_obj.u_id = user_id twUser_obj.tw_id = api.me().id_str twUser_obj.brand_name = brand_name twUser_obj.username = api.me().screen_name TWUser.collection().update({"u_id": user_id, "brand_name": brand_name}, twUser_obj.serialize()) saved_tw_user_obj = TWUser.unserialize(TWUser.collection().find_one({"u_id": user_id, "brand_name": brand_name})) update_brand_mapping(user_id, brand_name, "twitter", api.me().id_str, {"key": key, "secret": secret}) t = Thread(target=save_tweets, args=(user_id, saved_tw_user_obj.tw_id, brand_name)) t.setDaemon(False) t.start() return saved_tw_user_obj
def save_fsq_user(user_id, brand_name, access_token): api = get_api() api.set_access_token(access_token) me = api.users()["user"] fsq_user = FSQUser() fsq_user.fsq_id = me["id"] fsq_user.u_id = user_id fsq_user.brand_name = brand_name fsq_user.first_name = key_check(me, "firstName") fsq_user.last_name = key_check(me, "lastName") fsq_user.fields = me dupe_obj = FSQUser.collection().find_one({"u_id": user_id, "brand_name": brand_name}) if dupe_obj is None: fsq_user._id = FSQUser.collection().insert(fsq_user.serialize()) else: FSQUser.collection().update({"u_id": user_id, "brand_name": brand_name}, fsq_user.serialize()) fsq_user = FSQUser.unserialize(FSQUser.collection().find_one({"u_id": user_id, "brand_name": brand_name})) update_brand_mapping(user_id, brand_name, "foursquare", fsq_user.fsq_id, access_token) return fsq_user
def del_fb_page(user_id, brand_name): update_brand_mapping(user_id, brand_name, "facebook")
def del_fsq_user(user_id, brand_name): update_brand_mapping(user_id, brand_name, "foursquare") FSQUser.collection().remove({"u_id": user_id, "brand_name": brand_name})
def del_twitter_user(user_id, brand_name): update_brand_mapping(user_id, brand_name, "twitter") TWUser.collection().remove({"u_id": user_id, "brand_name": brand_name})