def post(self): user_log.info("InviteFriendAddingHandler POST.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["mode"] optional_args = ["phone", "mcode", "userID", "remark"] if True != httpJSONArgsCheck(req_json, required_args, optional_args): user_log.error("Invite firend adding protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return mode = req_json["mode"] phone_no = req_json["phone"] mcode = req_json["mcode"] user_id = req_json["userID"] remark = req_json["remark"] cur_user_id = self.get_current_user() user_info = dao_friend.queryUserInfo(cur_user_id) if user_info is None: user_log.error("Query user info failed! User id: %s", cur_user_id) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_USER_INFO_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return if FD_FRIEND_ADD_MODE_PHONE_NO == mode: user_id = dao_friend.queryUserIDByPhoneNo(phone_no) # if phone not exist in db, try send a short message to phonenumber owner if user_id is None: if len(str(phone_no)) != 11: rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_USER_INFO_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return else: r = send_invite_friend_download_app(phone_no, user_info['name'], remark.encode('utf-8'), 'www.immbear.com') r = json.loads(r) if r['code'] != 0: user_log.error("Send Message Failed! User id: %s, phone: %s" % (cur_user_id, phone_no)) self.write({'is_success': False, 'des': 'This phone master is not our user, but we has send a phone message to him/her'}) return elif FD_FRIEND_ADD_MODE_MCODE == mode: # mcode format: m1234 user_id = int(mcode[1:]) if int(cur_user_id) != int(user_id) and not dao_friend.hasFriend(cur_user_id, user_id): # Send invite be friend info url = CONFIG.FD_CHAT_SERVER + "/chat/friend/invite/" + str(cur_user_id) + "/to/" + str(user_id) body = {} body["invitor_id"] = cur_user_id body["invitor_name"] = user_info["name"] body["invitor_portrait"] = user_info["portrait"] body["remark"] = remark body["receivor_id"] = user_id body_str = json.dumps(body) request = HTTPRequest(url, "POST", body=body_str) http = AsyncHTTPClient() response = yield http.fetch(request) rep_json = json.loads(response.body) is_success = rep_json["is_success"] if is_success: rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return else: user_log.error("Send inviting be friend message failed! Invitor id: %s, receivor id: %s", cur_user_id, user_id) rep_json = {} rep_json["err"] = FD_ERR_USER_SEND_INVITING_BE_FRIEND_MESSAGE_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return else: self.write({'is_success': False, 'des': 'This User is already your friend!'})
def post(self): response = send_invite_friend_download_app( self.arg.phone, self.arg.name.encode('utf-8'), self.arg.remark.encode('utf-8'), 'http://www.immbear.com') self.write(response)
def post(self): response = send_invite_friend_download_app(self.arg.phone, self.arg.name.encode('utf-8'), self.arg.remark.encode('utf-8'), 'http://www.immbear.com') self.write(response)