mirror of
https://github.com/Expand-sys/CCash
synced 2026-03-22 12:37:08 +11:00
✨ SetBal()
This commit is contained in:
parent
deae9fab7c
commit
1a434c6bcb
5 changed files with 21 additions and 24 deletions
|
|
@ -66,7 +66,7 @@ int main(int argc, char **argv)
|
||||||
bank.admin_pass = "root";
|
bank.admin_pass = "root";
|
||||||
Op_a(bank.AddUser("", ""), "add user: ", 1000000, bank.DelUser("", ""));
|
Op_a(bank.AddUser("", ""), "add user: ", 1000000, bank.DelUser("", ""));
|
||||||
Op_a(bank.AdminAddUser("root", "", 0, ""), "admin add user: ", 1000000, bank.DelUser("", ""));
|
Op_a(bank.AdminAddUser("root", "", 0, ""), "admin add user: ", 1000000, bank.DelUser("", ""));
|
||||||
Op(bank.SetBal("twix", "root", 1000000), "set bal: ", 1000000);
|
Op(bank.SetBal("twix", 1000000), "set bal: ", 1000000);
|
||||||
Op(bank.SendFunds("twix", "jolly", 1), "send funds: ", 1000000);
|
Op(bank.SendFunds("twix", "jolly", 1), "send funds: ", 1000000);
|
||||||
|
|
||||||
bank.AddUser("", "");
|
bank.AddUser("", "");
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ public:
|
||||||
bool Contains(const std::string &name) const noexcept;
|
bool Contains(const std::string &name) const noexcept;
|
||||||
bool AdminVerifyPass(const std::string &attempt) noexcept; //interall used
|
bool AdminVerifyPass(const std::string &attempt) noexcept; //interall used
|
||||||
|
|
||||||
int_fast8_t SetBal(const std::string &name, const std::string &attempt, uint32_t amount) noexcept;
|
BankResponse SetBal(const std::string &name, uint32_t amount) noexcept;
|
||||||
|
|
||||||
void Save();
|
void Save();
|
||||||
void Load();
|
void Load();
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ public:
|
||||||
void VerifyPassword(req_args) const;
|
void VerifyPassword(req_args) const;
|
||||||
|
|
||||||
void ChangePassword(req_args) const;
|
void ChangePassword(req_args) const;
|
||||||
|
void SetBal(req_args) const;
|
||||||
|
|
||||||
void Help(req_args) const;
|
void Help(req_args) const;
|
||||||
void Ping(req_args) const;
|
void Ping(req_args) const;
|
||||||
|
|
@ -29,7 +30,6 @@ public:
|
||||||
void DelUser(req_args, const std::string &name) const;
|
void DelUser(req_args, const std::string &name) const;
|
||||||
void AdminDelUser(req_args, const std::string &name) const;
|
void AdminDelUser(req_args, const std::string &name) const;
|
||||||
void Contains(req_args, const std::string &name) const;
|
void Contains(req_args, const std::string &name) const;
|
||||||
void SetBal(req_args, const std::string &name, uint32_t amount) const;
|
|
||||||
void AdminVerifyPass(req_args);
|
void AdminVerifyPass(req_args);
|
||||||
|
|
||||||
METHOD_LIST_BEGIN
|
METHOD_LIST_BEGIN
|
||||||
|
|
@ -42,7 +42,7 @@ public:
|
||||||
|
|
||||||
//Meta Usage
|
//Meta Usage
|
||||||
METHOD_ADD(api::ChangePassword, "/v1/user/change_password", Patch, Options, "UserFilter"); //done
|
METHOD_ADD(api::ChangePassword, "/v1/user/change_password", Patch, Options, "UserFilter"); //done
|
||||||
METHOD_ADD(api::SetBal, "/admin/{name}/bal?amount={amount}", Patch, Options);
|
METHOD_ADD(api::SetBal, "/v1/admin/bal", Patch, Options, "AdminFilter"); //done
|
||||||
|
|
||||||
//System Usage
|
//System Usage
|
||||||
METHOD_ADD(api::Help, "/help", Get, Options);
|
METHOD_ADD(api::Help, "/help", Get, Options);
|
||||||
|
|
|
||||||
16
src/bank.cpp
16
src/bank.cpp
|
|
@ -247,18 +247,14 @@ bool Bank::AdminVerifyPass(const std::string &attempt) noexcept
|
||||||
return (admin_pass == attempt);
|
return (admin_pass == attempt);
|
||||||
}
|
}
|
||||||
|
|
||||||
int_fast8_t Bank::SetBal(const std::string &name, const std::string &attempt, uint32_t amount) noexcept
|
BankResponse Bank::SetBal(const std::string &name, uint32_t amount) noexcept
|
||||||
{
|
{
|
||||||
if (admin_pass != attempt)
|
BankResponse res = {k404NotFound, "User not found"};
|
||||||
{
|
users.modify_if(name, [&res, amount](User &u) {
|
||||||
return ErrorResponse::WrongPassword;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (users.modify_if(name, [amount](User &u) {
|
|
||||||
u.balance = amount;
|
u.balance = amount;
|
||||||
}))
|
res = {k200OK, "Balance set!"};
|
||||||
? true
|
});
|
||||||
: ErrorResponse::UserNotFound;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bank::Save()
|
void Bank::Save()
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
resp->setExpiredTime(0); \
|
resp->setExpiredTime(0); \
|
||||||
callback(resp);
|
callback(resp);
|
||||||
|
|
||||||
#define NAME_PARAM req->getBody()
|
#define NAME_PARAM req->getBody().data()
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
constexpr Json::Value JsonCast(T &&val)
|
constexpr Json::Value JsonCast(T &&val)
|
||||||
|
|
@ -56,7 +56,7 @@ void api::GetLog(req_args)
|
||||||
{
|
{
|
||||||
if constexpr (max_log_size > 0)
|
if constexpr (max_log_size > 0)
|
||||||
{
|
{
|
||||||
RESPONSE_PARSE(bank.GetLogs(NAME_PARAM.data()));
|
RESPONSE_PARSE(bank.GetLogs(NAME_PARAM));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -69,18 +69,23 @@ void api::GetLog(req_args)
|
||||||
void api::SendFunds(req_args) const
|
void api::SendFunds(req_args) const
|
||||||
{
|
{
|
||||||
GEN_BODY
|
GEN_BODY
|
||||||
RESPONSE_PARSE(bank.SendFunds(NAME_PARAM.data(), body["to"].asCString(), body["amount"].asUInt()));
|
RESPONSE_PARSE(bank.SendFunds(NAME_PARAM, body["to"].asCString(), body["amount"].asUInt()));
|
||||||
}
|
}
|
||||||
void api::VerifyPassword(req_args) const
|
void api::VerifyPassword(req_args) const
|
||||||
{
|
{
|
||||||
RESPOND_TRUE
|
RESPOND_TRUE //as we know the user exists and is verified
|
||||||
}
|
}
|
||||||
|
|
||||||
void api::ChangePassword(req_args) const
|
void api::ChangePassword(req_args) const
|
||||||
{
|
{
|
||||||
GEN_BODY
|
GEN_BODY
|
||||||
bank.ChangePassword(NAME_PARAM.data(), std::move(body["new_pass"].asCString())); //may make asString()
|
bank.ChangePassword(NAME_PARAM, std::move(body["new_pass"].asCString())); //may make asString()
|
||||||
RESPOND_TRUE
|
RESPOND_TRUE //as we know the user exists and is verified
|
||||||
|
}
|
||||||
|
void api::SetBal(req_args) const
|
||||||
|
{
|
||||||
|
GEN_BODY
|
||||||
|
RESPONSE_PARSE(bank.SetBal(NAME_PARAM, body["amount"].asUInt()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void api::Help(req_args) const
|
void api::Help(req_args) const
|
||||||
|
|
@ -133,10 +138,6 @@ void api::Contains(req_args, const std::string &name) const
|
||||||
{
|
{
|
||||||
JSON(bank.Contains(name));
|
JSON(bank.Contains(name));
|
||||||
}
|
}
|
||||||
void api::SetBal(req_args, const std::string &name, uint32_t amount) const
|
|
||||||
{
|
|
||||||
JSON(bank.SetBal(name, PASS_HEADER, amount));
|
|
||||||
}
|
|
||||||
void api::AdminVerifyPass(req_args)
|
void api::AdminVerifyPass(req_args)
|
||||||
{
|
{
|
||||||
JSON(bank.AdminVerifyPass(PASS_HEADER));
|
JSON(bank.AdminVerifyPass(PASS_HEADER));
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue