mirror of
https://github.com/Expand-sys/CCash
synced 2025-12-16 16:12:14 +11:00
✨ SubBal()
This commit is contained in:
parent
e87ab53a8a
commit
e81a7b281e
4 changed files with 36 additions and 2 deletions
|
|
@ -53,6 +53,7 @@ public:
|
|||
void ChangePassword(const std::string &name, std::string &&new_pass) noexcept;
|
||||
BankResponse SetBal(const std::string &name, uint32_t amount) noexcept;
|
||||
BankResponse AddBal(const std::string &name, uint32_t amount) noexcept;
|
||||
BankResponse SubBal(const std::string &name, uint32_t amount) noexcept;
|
||||
bool Contains(const std::string &name) const noexcept;
|
||||
bool AdminVerifyAccount(std::string_view name) noexcept;
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ public:
|
|||
void AdminChangePassword(req_args) const;
|
||||
void SetBal(req_args) const;
|
||||
void AddBal(req_args) const;
|
||||
void SubBal(req_args) const;
|
||||
|
||||
void Help(req_args) const;
|
||||
void Ping(req_args) const;
|
||||
|
|
@ -55,7 +56,8 @@ public:
|
|||
METHOD_ADD(api::ChangePassword, "/v1/user/change_password", Patch, Options, "JsonFilter", "UserFilter"); //expects ["new_pass"](string)
|
||||
METHOD_ADD(api::AdminChangePassword, "/v1/user/change_password", Patch, Options, "JsonFilter", "AdminFilter"); //expects ["name"](string) and ["new_pass"](string)
|
||||
METHOD_ADD(api::SetBal, "/v1/admin/set_balance", Patch, Options, "JsonFilter", "AdminFilter"); //expects ["name"](string) and ["amount"](32 bits)
|
||||
METHOD_ADD(api::AddBal, "/v1/admin/give_balance", Post, Options, "JsonFilter", "AdminFilter"); //expects ["name"](string) and ["amount"](32 bits)
|
||||
METHOD_ADD(api::AddBal, "/v1/admin/add_balance", Post, Options, "JsonFilter", "AdminFilter"); //expects ["name"](string) and ["amount"](32 bits)
|
||||
METHOD_ADD(api::SubBal, "/v1/admin/sub_balance", Post, Options, "JsonFilter", "AdminFilter"); //expects ["name"](string) and ["amount"](32 bits)
|
||||
|
||||
//System Usage
|
||||
METHOD_ADD(api::Help, "/v1/help", Get, Options);
|
||||
|
|
|
|||
28
src/bank.cpp
28
src/bank.cpp
|
|
@ -151,6 +151,10 @@ BankResponse Bank::SetBal(const std::string &name, uint32_t amount) noexcept
|
|||
}
|
||||
BankResponse Bank::AddBal(const std::string &name, uint32_t amount) noexcept
|
||||
{
|
||||
if (amount)
|
||||
{
|
||||
return {k400BadRequest, "Amount cannot be 0"};
|
||||
}
|
||||
if (users.modify_if(name, [amount](User &u) { u.balance += amount; }))
|
||||
{
|
||||
#if CONSERVATIVE_DISK_SAVE
|
||||
|
|
@ -160,7 +164,29 @@ BankResponse Bank::AddBal(const std::string &name, uint32_t amount) noexcept
|
|||
save_flag = true;
|
||||
#endif
|
||||
#endif
|
||||
return {k200OK, "Balance set!"};
|
||||
return {k200OK, "Balance added!"};
|
||||
}
|
||||
else
|
||||
{
|
||||
return {k404NotFound, "User not found"};
|
||||
}
|
||||
}
|
||||
BankResponse Bank::SubBal(const std::string &name, uint32_t amount) noexcept
|
||||
{
|
||||
if (amount)
|
||||
{
|
||||
return {k400BadRequest, "Amount cannot be 0"};
|
||||
}
|
||||
if (users.modify_if(name, [amount](User &u) { amount > u.balance ? u.balance = 0 : u.balance -= amount; }))
|
||||
{
|
||||
#if CONSERVATIVE_DISK_SAVE
|
||||
#if MULTI_THREADED
|
||||
save_flag.SetChangesOn();
|
||||
#else
|
||||
save_flag = true;
|
||||
#endif
|
||||
#endif
|
||||
return {k200OK, "Balance subtracted!"};
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -100,6 +100,11 @@ void api::AddBal(req_args) const
|
|||
GEN_BODY
|
||||
RESPONSE_PARSE(bank.AddBal(body["name"].asCString(), body["amount"].asUInt()));
|
||||
}
|
||||
void api::SubBal(req_args) const
|
||||
{
|
||||
GEN_BODY
|
||||
RESPONSE_PARSE(bank.AddBal(body["name"].asCString(), body["amount"].asUInt()));
|
||||
}
|
||||
|
||||
//System Usage
|
||||
void api::Help(req_args) const
|
||||
|
|
|
|||
Loading…
Reference in a new issue