Skip to content

Commit a36ec1b

Browse files
Merge pull request #37 from 0WAQ/main
code and msg
2 parents 5a83ede + 0a32159 commit a36ec1b

File tree

2 files changed

+30
-12
lines changed

2 files changed

+30
-12
lines changed

user_controller.cc

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include "msg_controller.h"
88
using namespace drogon;
99

10-
typedef std::string (*HandlerFunc)(const Json::Value&);
10+
typedef void (*HandlerFunc)(const Json::Value&, std::string*, int*);
1111

1212
void Handle(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, HandlerFunc handler)
1313
{
@@ -24,9 +24,15 @@ void Handle(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr
2424
}
2525

2626
Json::FastWriter writer;
27-
std::string msg = handler(req_json);
27+
28+
std::string msg;
29+
int code;
2830

31+
handler(req_json, &msg, &code);
32+
2933
res_json["msg"] = msg;
34+
res_json["code"] = code;
35+
3036
if (msg.find("Success")!= std::string::npos)
3137
{
3238
res_json["token"] = jwtGen(req_json);
@@ -60,21 +66,33 @@ std::string sha256(const std::string str)
6066
return ss.str();
6167
}
6268

63-
std::string registerUser(const Json::Value& req_json)
69+
void registerUser(const Json::Value& req_json, std::string* msg, int* code)
6470
{
6571
if (sql_check(req_json["username"].asString()))
6672
{
6773
sql_add(req_json["username"].asString(), sha256(req_json["password"].asString()), req_json["avatar"].asInt());
68-
return "Sign up Success";
74+
*msg = "Sign up Success";
75+
*code = 200;
76+
}
77+
else
78+
{
79+
*msg = "User already exist";
80+
*code = 409;
6981
}
70-
return "User already exist";
7182
}
7283

73-
std::string loginUser(const Json::Value& req_json)
74-
{
84+
void loginUser(const Json::Value& req_json, std::string* msg, int* code)
85+
{
7586
if (sql_check(req_json["username"].asString(), sha256(req_json["password"].asString())))
76-
return "Login Success";
77-
return "Login Failed";
87+
{
88+
*msg = "Login Success";
89+
*code = 200;
90+
}
91+
else
92+
{
93+
*msg = "Login Failed";
94+
*code = 401;
95+
}
7896
}
7997

8098
void avatar(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)

user_controller.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
#include <drogon/drogon.h>
55
using namespace drogon;
66

7-
typedef std::string (*HandlerFunc)(const Json::Value&);
7+
typedef void (*HandlerFunc)(const Json::Value&, std::string* str, int*);
88

99
void Handle(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, HandlerFunc handler);
10-
std::string registerUser(const Json::Value& req_json);
11-
std::string loginUser(const Json::Value& req_json);
10+
void registerUser(const Json::Value& req_json, std::string* msg, int* code);
11+
void loginUser(const Json::Value& req_json, std::string* msg, int* code);
1212
void avatar(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
1313
#endif

0 commit comments

Comments
 (0)