Skip to content

Commit 32b4355

Browse files
fix many bug
1 parent 96cd05e commit 32b4355

File tree

5 files changed

+31
-3
lines changed

5 files changed

+31
-3
lines changed

main.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ int main() {
2828
});
2929
drogon::app().registerHandler("/api/info", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
3030
info(req, std::move(callback));
31+
});
32+
drogon::app().registerHandler("/api/avatar", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
33+
avatar(req, std::move(callback));
3134
});
3235
drogon::app().run();
3336
return 0;

mysql.cc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ bool sql_check(std::string user, std::string passwd)
440440
return result;
441441
}
442442
Json::Value sql_find_my_msg(std::string me)
443+
443444
{
444445
std::cout << "login user: " << me << std::endl;
445446
try
@@ -507,4 +508,15 @@ Json::Value sql_find_my_msg(std::string me)
507508
std::cerr << "SQL Exception: " << e.what() << std::endl;
508509
return "error";
509510
}
511+
}
512+
void set_avatar(std::string person, int avatar)
513+
{
514+
sql::mysql::MySQL_Driver *driver = sql::mysql::get_mysql_driver_instance();
515+
sql::Connection *con = driver->connect("tcp://8.130.48.157:3306", "root", "abc.123");
516+
con->setSchema("flypen");
517+
std::string update_sql = "UPDATE users SET avatar = ? WHERE username = ?";
518+
sql::PreparedStatement *updateStatement = con->prepareStatement(update_sql);
519+
updateStatement->setInt(1, avatar);
520+
updateStatement->setString(2, person);
521+
updateStatement->execute();
510522
}

mysql.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ Json::Value sql_find_my_msg(std::string);
1616
Json::Value get_chat_info(std::string,std::string="");
1717

1818
void sql_delete_operation(std::string,std::string);
19+
void set_avatar(std::string person, int avatar);
1920

2021
#endif

user_controller.cc

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@ void Handle(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr
1717
Json::FastWriter writer;
1818
std::string msg = handler(req_json);
1919
res_json["msg"] = msg;
20-
if (msg=="Login Success"){
20+
if (msg.find("Success")!= std::string::npos){
2121
res_json["token"] = jwtGen(req_json);
2222
res_json["username"] = req_json["username"].asString();
23-
}else
24-
res_json["token"] = "";
23+
}
2524
auto output = writer.write(res_json);
2625
auto res = HttpResponse::newHttpResponse();
2726
res->addHeader("Access-Control-Allow-Origin", "*");
@@ -42,4 +41,16 @@ std::string loginUser(const Json::Value& req_json) {
4241
return "Login Success";
4342
}else
4443
return "Login Failed";
44+
}
45+
void avatar(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
46+
auto res = HttpResponse::newHttpResponse();
47+
res->addHeader("Access-Control-Allow-Origin", "*");
48+
if (jwtVerify(req)) {
49+
std::string receiver = jwtDecrypt(req->getHeader("Authorization").substr(7));
50+
set_avatar(receiver, stoi(req->getParameter("avatar")));
51+
res->setBody("Success");
52+
} else {
53+
res->setBody("No Authorization");
54+
}
55+
callback(res);
4556
}

user_controller.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ typedef std::string (*HandlerFunc)(const Json::Value&);
66
void Handle(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, HandlerFunc handler);
77
std::string registerUser(const Json::Value& req_json);
88
std::string loginUser(const Json::Value& req_json);
9+
void avatar(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
910
#endif

0 commit comments

Comments
 (0)