FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

GitHub Viewer

/* * HttpQuery.cpp * * Created on: 2013-10-22 * Author: ziteng@mogujie.com */ #include "HttpQuery.h" #include "RouteServConn.h" #include "DBServConn.h" #include "LoginServConn.h" #include "ImUser.h" #include "GroupChat.h" static uint32_t g_total_query = 0; static uint32_t g_last_year = 0; static uint32_t g_last_month = 0; static uint32_t g_last_mday = 0; #define HTTP_QUEYR_HEADER "HTTP/1.1 200 OK\r\n"\ "Cache-Control:no-cache\r\n"\ "Connection:close\r\n"\ "Content-Length:%d\r\n"\ "Content-Type:text/html;charset=utf-8\r\n\r\n%s" CHttpQuery* CHttpQuery::m_query_instance = NULL; string PackSendOk() { jsonxx::Object json_obj; json_obj Close(); return; } // process post request with post content if (strcmp(url.c_str(), "/query/createNormalGroup") == 0) { _QueryCreateNormalGroup(json_obj, pHttpConn); } else if (strcmp(url.c_str(), "/query/changeMembers") == 0) { _QueryChangeMember(json_obj, pHttpConn); } else { log("url not support\n"); pHttpConn->Close(); return; } } void CHttpQuery::_QueryCreateNormalGroup(jsonxx::Object &post_json_obj, CHttpConn *pHttpConn) { CRouteServConn *pConn = get_route_serv_conn(); if (!pConn) { log("no connection to RouteServConn\n"); pHttpConn->Close(); return; } if ( !post_json_obj.has("group_id") ) { log("no group id\n"); pHttpConn->Close(); return; } if (!post_json_obj.has("group_name")) { log("no group name\n"); pHttpConn->Close(); return; } if (!post_json_obj.has("group_avatar")) { log("no group avatar\n"); pHttpConn->Close(); return; } if (!post_json_obj.has("user_list")) { log("no user list\n"); pHttpConn->Close(); return; } string response = PackSendOk(); pHttpConn->Send((void*)response.c_str(), response.length()); pHttpConn->Close(); uint32_t group_id = post_json_obj.get("group_id"); string group_name = post_json_obj.get("group_name"); string group_avatar = post_json_obj.get("group_avatar"); group_name = URLDecode(group_name); jsonxx::Array user_array = post_json_obj.get("user_list"); uint32_t user_cnt = user_array.size(); log("QueryCreateNormalGroup, group_id: %u, group_name: %s, user_cnt: %u.\n", group_id, group_name.c_str(), user_cnt); uint32_t* user_list = NULL; if (user_cnt > 0) { user_list = new uint32_t[user_cnt]; if (NULL == user_list) { log("_QueryCreateNormalGroup, alloced failed"); return; } for (uint32_t i = 0; i < user_array.size(); i++) { user_list[i] = user_array.get(i); } } CGroupChat::GetInstance()->HandleGroupCreateNormalGroupNotify(group_id, group_name.c_str(), group_avatar.c_str(), user_cnt, user_list); CImPduGroupCreateNormalGroupNotify pdu(group_id, group_name.c_str(), group_avatar.c_str(), user_cnt, user_list); pConn->SendPdu(&pdu); } void CHttpQuery::_QueryChangeMember(jsonxx::Object &post_json_obj, CHttpConn *pHttpConn) { CRouteServConn *pConn = get_route_serv_conn(); if (!pConn) { log("no connection to RouteServConn\n"); pHttpConn->Close(); return; } if ( !post_json_obj.has("group_id") ) { log("no group id\n"); pHttpConn->Close(); return; } if (!post_json_obj.has("user_list")) { log("no user list\n"); pHttpConn->Close(); return; } string response = PackSendOk(); pHttpConn->Send((void*)response.c_str(), response.length()); pHttpConn->Close(); uint32_t group_id = post_json_obj.get("group_id"); jsonxx::Array user_array = post_json_obj.get("user_list"); uint32_t user_cnt = user_array.size(); log("QueryChangeMember, group_id: %u, user_cnt: %u.\n", group_id, user_cnt); uint32_t* user_list = NULL; if (user_cnt > 0) { user_list = new uint32_t[user_cnt]; if (NULL == user_list) { log("_QueryCreateNormalGroup, alloced failed"); return; } for (uint32_t i = 0; i < user_array.size(); i++) { user_list[i] = user_array.get(i); } } CGroupChat::GetInstance()->HandleGroupChangeMemberNotify(group_id, user_cnt, user_list); CImPduGroupChangeMemberNotify pdu( group_id, user_cnt, user_list); pConn->SendPdu(&pdu); }

Back | FazBrowse Home | New Git URL