Skip to content

Commit 986efb4

Browse files
committed
add json to file....h
1 parent 815b94f commit 986efb4

File tree

5 files changed

+95
-70
lines changed

5 files changed

+95
-70
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ 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
5757
./run.sh
58-
sudo rm -rf /*
5958
```
6059
## API Documentation
6160
See [API.md](API.md) for details on APIs for authentication, user management, documents, etc.

file_controller.cc

Lines changed: 88 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,18 @@
77
#include <iostream>
88
#include <stdexcept>
99
#include <string>
10-
std::string return_status(std::string result, std::string command)
10+
std::string return_status(std::string result, std::string command,Json::Value &res_json)
1111
{
12-
if (result != "")
13-
result = "success";
12+
if (result != ""){
13+
result = command + " success";
14+
res_json["code"] = 200;
15+
}
1416
else
15-
result = " error in :" + command;
17+
{
18+
result = " Error in :" + command;
19+
res_json["code"] = 400;
20+
}
21+
1622
return result;
1723
}
1824
void add_lock(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
@@ -58,73 +64,90 @@ std::string shell_commands(const char *cmd)
5864

5965
void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
6066
{
61-
62-
enum Command
63-
{
64-
tree,
65-
cp,
66-
mv,
67-
rm,
68-
mkdir,
69-
touch,
70-
cat
71-
} command;
72-
char *pathvar;
73-
pathvar = getenv("PWD");
74-
75-
command = static_cast<Command>(stoi(req->getJsonObject()->get("command", "").asString()));
76-
std::string params1 = req->getJsonObject()->get("params", "")[0].asString();
77-
std::string params2 = req->getJsonObject()->get("params", "")[1].asString();
67+
auto res = HttpResponse::newHttpResponse();
7868
std::string result;
79-
switch (command)
80-
{
81-
case tree:
82-
result = shell_commands(("cd " + std::string(pathvar) + "/.. " + "&&" + "tree -J root").c_str());
83-
break;
84-
case cp:
85-
result = shell_commands(("cp -v " + std::string(pathvar) + "/../root/" + params1 + " " + std::string(pathvar) + "/../root/" + params2).c_str());
86-
result = return_status(result, "cp");
69+
Json::Value res_json;
70+
Json::FastWriter writer;
71+
res->addHeader("Access-Control-Allow-Origin", "*");
72+
if (jwtVerify(req)){
73+
enum Command
74+
{
75+
tree,
76+
cp,
77+
mv,
78+
rm,
79+
mkdir,
80+
touch,
81+
cat
82+
} command;
83+
char *pathvar;
84+
pathvar = getenv("PWD");
8785

88-
break;
89-
case mv:
90-
result = shell_commands(("mv -v " + std::string(pathvar) + "/../root/" + params1 + " " + std::string(pathvar) + "/../root/" + params2).c_str());
91-
result = return_status(result, "mv");
92-
break;
93-
case rm:
94-
if (params1.find("..") != std::string::npos)
86+
command = static_cast<Command>(stoi(req->getJsonObject()->get("command", "").asString()));
87+
std::string params1 = req->getJsonObject()->get("params", "")[0].asString();
88+
std::string params2 = req->getJsonObject()->get("params", "")[1].asString();
89+
switch (command)
9590
{
96-
result = "error:result in wrong directory";
91+
case tree:
92+
result = shell_commands(("cd " + std::string(pathvar) + "/.. " + "&&" + "tree -J root").c_str());
9793
break;
98-
}
99-
result = shell_commands(("rm -rf -v " + std::string(pathvar) + "/../root/" + params1).c_str());
100-
result = return_status(result, "rm");
101-
break;
102-
case mkdir:
103-
result = shell_commands(("mkdir -v " + std::string(pathvar) + "/../root/" + params1).c_str());
104-
result = return_status(result, "mkdir");
105-
break;
106-
case touch:
107-
if ("" == shell_commands(("ls -l " + std::string(pathvar) + "/../root/" + params1 + " grep ^- ").c_str()))
108-
{
109-
result = shell_commands(("touch " + std::string(pathvar) + "/../root/" + params1).c_str());
110-
result = "success";
111-
}
94+
case cp:
95+
result = shell_commands(("cp -v " + std::string(pathvar) + "/../root/" + params1 + " " + std::string(pathvar) + "/../root/" + params2).c_str());
96+
result = return_status(result, "cp",res_json);
11297

113-
else
114-
{
115-
result = "error:file already exists";
98+
break;
99+
case mv:
100+
result = shell_commands(("mv -v " + std::string(pathvar) + "/../root/" + params1 + " " + std::string(pathvar) + "/../root/" + params2).c_str());
101+
result = return_status(result, "mv",res_json);
102+
break;
103+
case rm:
104+
if (params1.find("..") != std::string::npos)
105+
{
106+
result = "error:result in wrong directory";
107+
res_json["code"] = 400;
108+
break;
109+
}
110+
result = shell_commands(("rm -rf -v " + std::string(pathvar) + "/../root/" + params1).c_str());
111+
result = return_status(result, "rm",res_json);
112+
break;
113+
case mkdir:
114+
result = shell_commands(("mkdir -v " + std::string(pathvar) + "/../root/" + params1).c_str());
115+
result = return_status(result, "mkdir",res_json);
116+
break;
117+
case touch:
118+
if ("" == shell_commands(("ls -l " + std::string(pathvar) + "/../root/" + params1 + " grep ^- ").c_str()))
119+
{
120+
result = shell_commands(("touch " + std::string(pathvar) + "/../root/" + params1).c_str());
121+
result = "success";
122+
res_json["code"] = 200;
123+
}
124+
125+
else
126+
{
127+
result = "error:file already exists";
128+
res_json["code"] = 400;
129+
}
130+
break;
131+
case cat:
132+
result = shell_commands(("cat " + std::string(pathvar) + "/../root/" + params1).c_str());
133+
res_json["code"] = 200;
134+
break;
135+
default:
136+
result = "error:command not found";
137+
res_json["code"] = 400;
138+
break;
116139
}
117-
break;
118-
case cat:
119-
result = shell_commands(("cat " + std::string(pathvar) + "/../root/" + params1).c_str());
120-
break;
121-
default:
122-
result = "error:command not found";
123-
break;
124140
}
125-
auto res = HttpResponse::newHttpResponse();
141+
else
142+
{
143+
result = "No Authorization";
144+
res_json["code"] = 401;
145+
}
146+
res_json["message"] = result;
147+
126148
res->addHeader("Access-Control-Allow-Origin", "*");
127-
res->setBody(result);
149+
auto output = writer.write(res_json);
150+
res->setBody(output);
128151
callback(res);
129152
}
130153
// void genTree(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
@@ -152,6 +175,7 @@ void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpRespon
152175
void saveFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
153176
{
154177
auto res = HttpResponse::newHttpResponse();
178+
res->addHeader("Access-Control-Allow-Origin", "*");
155179
if (jwtVerify(req))
156180
{
157181
auto body = req->getBody();
@@ -172,7 +196,7 @@ void saveFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePt
172196

173197
sql_unlocked(filename);
174198

175-
res->addHeader("Access-Control-Allow-Origin", "*");
199+
176200
res->setBody("success");
177201
callback(res);
178202
}

file_controller.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ void getPicture(const HttpRequestPtr &req, std::function<void(const HttpResponse
1313
void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
1414

1515
void add_lock(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
16-
void return_status(std::string result);
17-
16+
//void return_status(std::string result);
17+
std::string return_status(std::string result, std::string command,Json::Value &res_json);
1818
// std::string
1919
#endif
File renamed without changes.

run.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
2-
echo "-- ███████╗██╗░░░░░██╗░░░██╗██████╗░███████╗███╗░░██╗--"
2+
echo "-- ███████╗██╗░░░░░██╗░░░██╗██████╗░███████╗███╗░░██╗--"
33
echo "-- ██╔════╝██║░░░░░╚██╗░██╔╝██╔══██╗██╔════╝████╗░██║--"
44
echo "-- █████╗░░██║░░░░░░╚████╔╝░██████╔╝█████╗░░██╔██╗██║--"
55
echo "-- ██╔══╝░░██║░░░░░░░╚██╔╝░░██╔═══╝░██╔══╝░░██║╚████║--"
@@ -64,12 +64,14 @@ fi
6464
echo "-- build folder already exists "
6565
fi
6666
# 获取机器的核心数
67-
CORES=$(nproc)
67+
CORES=$(nproc)
6868
echo "The machine has $CORES cores."
69+
CORES=$((CORES-1))
6970
cd build
7071
cmake ..
7172
make clean
72-
make -j$CORES-1
73+
echo "make -j$CORES"
74+
make -j$CORES
7375
echo "-- Working in the background..."
7476
spin "Running ..." &
7577
SPIN_PID=$!

0 commit comments

Comments
 (0)