diff --git a/include/bank.hpp b/include/bank.hpp index edd6d23..ca4cf2f 100644 --- a/include/bank.hpp +++ b/include/bank.hpp @@ -89,6 +89,17 @@ public: { return users.contains(name, users.hash(name)); } + bool SetBal(const std::string &name, const std::string &attempt, uint32_t amount) + { + bool state = (admin_pass == attempt); + if (state) + { + users.modify_if(name, [amount](User &u) { + u.balance = amount; + }); + } + return state; + } int_fast64_t GetBal(const std::string &name) const { diff --git a/include/bank_f.hpp b/include/bank_f.hpp index 36541c8..063f16e 100644 --- a/include/bank_f.hpp +++ b/include/bank_f.hpp @@ -33,7 +33,7 @@ public: { auto resp = HttpResponse::newHttpResponse(); auto handlerInfo = app().getHandlersInfo(); - resp->setBody("
the page you're looking at right now!
attempt - admin password
Closes and Saves the server.
name - name of the user being added
init_pass - initial password for the user being added
Adds a user to the bank
name - name of the user being added
attempt - admin password required to add user with balance
init_bal - initial balance for user being added
init_pass - initial password for user being added
Adds a user with initial balance
name - name of user being deleted
attempt - password of user being deleted
Deletes a user with the password of the user as verification
name - name of user being deleted
attempt - admin password
Deletes a user with admin password as verification
a_name - sender's name
b_name - reciever's name
amount - amount being sent
attempt - password of sender
Sends money from one user to another
name - name of user's password being changes
attempt - password of user being changed
new_pass - new password to replace the current user's password
Changes password of a user
returns a 0 or 1 based on if the bank contains the user
returns the balance of a given user's name, if -1 that means the user does not exist
name - name of user being verified
attempt - password being verified
returns 0 or 1 based on if [attempt] is equal to the password of the user [name]. The intended usage for this function is for connected services
"); + resp->setBody("
attempt - admin password
Closes and Saves the server.
name - name of the user being added
init_pass - initial password for the user being added
Adds a user to the bank
name - name of the user being added
attempt - admin password required to add user with balance
init_bal - initial balance for user being added
init_pass - initial password for user being added
Adds a user with initial balance
a_name - sender's name
b_name - reciever's name
amount - amount being sent
attempt - password of sender
Sends money from one user to another
name - name of user's password being changes
attempt - password of user being changed
new_pass - new password to replace the current user's password
Changes password of a user
returns the balance of a given user's name, if -1 that means the user does not exist
the page you're looking at right now!
name - name of user being verified
attempt - password being verified
returns 0 or 1 based on if [attempt] is equal to the password of the user [name]. The intended usage for this function is for connected services
returns a 0 or 1 based on if the bank contains the user
name - the name of the user being set
attempt - the admin password required
amount - the new balance of the user
Sets the balance of a user
name - name of user being deleted
attempt - password of user being deleted
Deletes a user with the password of the user as verification
name - name of user being deleted
attempt - admin password
"); resp->setExpiredTime(0); callback(resp); } @@ -96,6 +96,11 @@ public: GEN_BODY JSON(bank.VerifyPassword(body["name"].asCString(), body["attempt"].asCString())); } + void SetBal(req_args, const std::string &name) const + { + GEN_BODY + JSON(bank.SetBal(name, body["attempt"].asCString(), body["amount"].asUInt())); + } METHOD_LIST_BEGIN METHOD_ADD(BankF::Close, "/admin/close", Post); @@ -104,11 +109,12 @@ public: METHOD_ADD(BankF::SendFunds, "/sendfunds", Post); METHOD_ADD(BankF::ChangePassword, "/changepass", Patch); + METHOD_ADD(BankF::SetBal, "/{name}/bal", Patch); METHOD_ADD(BankF::Help, "/help", Get); METHOD_ADD(BankF::VerifyPassword, "/vpass", Get); METHOD_ADD(BankF::Contains, "/contains/{name}", Get); - METHOD_ADD(BankF::GetBal, "/{name}/getbal", Get); + METHOD_ADD(BankF::GetBal, "/{name}/bal", Get); METHOD_ADD(BankF::DelUser, "/user", Delete); METHOD_ADD(BankF::AdminDelUser, "/admin/user", Delete);Deletes a user with admin password as verification