Skip to content

Commit 63b142d

Browse files
committed
delete_function
1 parent 120913b commit 63b142d

File tree

5 files changed

+74
-16
lines changed

5 files changed

+74
-16
lines changed

main.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ int main() {
2424
request_processing(req, std::move(callback));
2525
});
2626
drogon::app().registerHandler("/api/newfriends", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
27-
friend_request(req, std::move(callback));
27+
friend_operation(req, std::move(callback));
2828
});
2929
drogon::app().registerHandler("/api/info", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
3030
info(req, std::move(callback));

msg_controller.cc

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ void check(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &
8383
callback(res);
8484
}
8585

86-
void friend_request(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
86+
void friend_operation(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
8787
{
8888
std::string authHeader = req->getHeader("Authorization");
8989
if (authHeader.substr(0, 7) == "Bearer ")
@@ -94,7 +94,10 @@ void friend_request(const HttpRequestPtr &req, std::function<void(const HttpResp
9494
{
9595
std::string sender = jwtDecrypt(bearerToken);
9696
std::string receiver = req->getParameter("username");
97+
std::string operation = req->getParameter("operation");
98+
if(operation=="add")
9799
sql_addrequest(sender, receiver);
100+
else sql_delete_operation(sender,receiver);
98101
}
99102
catch (const std::exception &e)
100103
{
@@ -116,9 +119,9 @@ void request_processing(const HttpRequestPtr &req, std::function<void(const Http
116119
try
117120
{
118121
std::string receiver = jwtDecrypt(bearerToken);
119-
std::string sender =req->getParameter("username");
122+
std::string sender = req->getParameter("username");
120123
std::string attitude = req->getParameter("info");
121-
sql_process_request(sender,receiver, attitude);
124+
sql_process_request(sender, receiver, attitude);
122125
}
123126
catch (const std::exception &e)
124127
{
@@ -129,40 +132,51 @@ void request_processing(const HttpRequestPtr &req, std::function<void(const Http
129132
auto res = HttpResponse::newHttpResponse();
130133
res->setBody("Success");
131134
}
132-
void info(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
135+
void info(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
136+
{
133137
auto body = req->getBody();
134138
Json::Value req_json, res_json;
135139
Json::Reader reader;
136140
std::string bodyStr(body);
137-
if (!reader.parse(bodyStr, req_json)) {
141+
if (!reader.parse(bodyStr, req_json))
142+
{
138143
callback(HttpResponse::newHttpResponse());
139144
return;
140145
}
141146
std::string me, who_send_me;
142147
Json::FastWriter writer;
143148
std::string authHeader = req->getHeader("Authorization");
144-
if (authHeader.substr(0, 7) == "Bearer ") {
149+
if (authHeader.substr(0, 7) == "Bearer ")
150+
{
145151
std::string bearerToken = authHeader.substr(7);
146152
// 在此处使用Bearer Token进行身份验证
147-
try {
153+
try
154+
{
148155
me = jwtDecrypt(bearerToken);
149-
} catch (const std::exception &e) {
156+
}
157+
catch (const std::exception &e)
158+
{
150159
std::cerr << e.what() << '\n';
151160
std::cout << "Wrong token" << std::endl;
152161
}
153-
} else {
162+
}
163+
else
164+
{
154165
// 连接没有Authorization头部Bearer Token
155166
std::cout << "No Authorization" << std::endl;
156167
}
157168

158169
auto res = HttpResponse::newHttpResponse();
159170
res->addHeader("Access-Control-Allow-Origin", "*");
160-
if(req_json["person"].asString()==""){
161-
res->setBody(writer.write(get_chat_info(me,"")));
171+
if (req_json["person"].asString() == "")
172+
{
173+
res->setBody(writer.write(get_chat_info(me, "")));
162174
callback(res);
163-
}else{
175+
}
176+
else
177+
{
164178
who_send_me = req_json["person"].asString();
165-
res->setBody(writer.write(get_chat_info(me,who_send_me)));
179+
res->setBody(writer.write(get_chat_info(me, who_send_me)));
166180
callback(res);
167181
}
168182
}

msg_controller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ void chat(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)
66
void info(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
77
void check(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
88
void request_processing(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
9-
void friend_request(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
9+
void friend_operation(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
1010
#endif

mysql.cc

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,50 @@
77
#include "jdbc/mysql_driver.h"
88
#include "json/json.h"
99

10+
void sql_delete_operation(std::string sender, std::string receiver)
11+
{
12+
std::vector<std::string> usernamelist;
13+
sql::mysql::MySQL_Driver *driver;
14+
driver = sql::mysql::get_mysql_driver_instance();
15+
sql::Connection *con;
16+
con = driver->connect("tcp://8.130.48.157:3306", "root", "abc.123");
17+
con->setSchema("flypen");
18+
std::string readdata = "SELECT friends FROM users WHERE username = ?";
19+
std::string Sfriendlist, Rfriendlist;
20+
std::string changedata = "UPDATE users SET friends=? WHERE username =?";
21+
sql::PreparedStatement *readdatament = con->prepareStatement(readdata);
22+
readdatament->setString(1, sender);
23+
sql::ResultSet *SresultSet = readdatament->executeQuery();
24+
if (SresultSet->next())
25+
{
26+
Sfriendlist = SresultSet->getString("friends");
27+
}
28+
int pos = Sfriendlist.find(receiver);
29+
if (pos != std::string::npos && pos != 0)
30+
Sfriendlist.erase(pos - 1, receiver.length() + 1);
31+
else if (pos == 0)
32+
Sfriendlist.erase(pos, receiver.length() + 1);
33+
std::cout << Sfriendlist << "\n";
34+
sql::PreparedStatement *updateStatement = con->prepareStatement(changedata);
35+
updateStatement->setString(1, Sfriendlist);
36+
updateStatement->setString(2, sender);
37+
updateStatement->execute();
38+
readdatament->setString(1, receiver);
39+
sql::ResultSet *RresultSet = readdatament->executeQuery();
40+
if (RresultSet->next())
41+
{
42+
Rfriendlist = RresultSet->getString("friends");
43+
}
44+
pos = Rfriendlist.find(sender);
45+
if (pos != std::string::npos && pos != 0)
46+
Rfriendlist.erase(pos - 1, sender.length() + 1);
47+
else if (pos == 0)
48+
Rfriendlist.erase(pos, sender.length() + 1);
49+
std::cout << Rfriendlist << "\n";
50+
updateStatement->setString(1, Rfriendlist);
51+
updateStatement->setString(2, receiver);
52+
updateStatement->execute();
53+
}
1054
void sql_process_request(std::string sender, std::string receiver, std::string attitude)
1155
{
1256
std::vector<std::string> usernamelist;
@@ -91,7 +135,6 @@ void sql_process_request(std::string sender, std::string receiver, std::string a
91135
updateS->execute();
92136
}
93137
}
94-
95138
return;
96139
}
97140

mysql.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ void sql_addrequest(std::string send,std::string receiver);
1212
void sql_process_request(std::string ,std::string,std::string);
1313
Json::Value sql_find_my_msg(std::string);
1414
Json::Value get_chat_info(std::string,std::string="");
15+
void sql_delete_operation(std::string,std::string);
1516
//bool sql_check(std::string );
1617
#endif

0 commit comments

Comments
 (0)