diff --git a/help.md b/help.md index 70ce25f..c4a15ef 100644 --- a/help.md +++ b/help.md @@ -33,7 +33,7 @@ | Help | BankF/help | GET | false | the page you're looking at right now! | | Ping | BankF/ping | GET | false | for pinging the server to see if its online | | Close | BankF/admin/close | POST | true | saves and then closes the program if the supplied password matches the admin password | -| Contains | BankF/contains/{name} | GET | false | returns `true` or `false` depending on if the supplied user `{name}` exists | +| Contains | BankF/contains/{name} | GET | false | returns `1` if the supplied user `{name}` exists | | AdminVerifyPass | BankF/admin/verify | GET | true | returns `1` if the password supplied in the header matches the admin password | # User Management diff --git a/include/bank.h b/include/bank.h index 81a9554..35ec3cd 100644 --- a/include/bank.h +++ b/include/bank.h @@ -41,7 +41,7 @@ public: int_fast8_t SendFunds(const std::string &a_name, const std::string &b_name, uint32_t amount, const std::string &attempt); - bool Contains(const std::string &name) const; + int_fast8_t Contains(const std::string &name) const; int_fast8_t AdminVerifyPass(const std::string &attempt); int_fast8_t SetBal(const std::string &name, const std::string &attempt, uint32_t amount); diff --git a/src/bank.cpp b/src/bank.cpp index 01161fd..ba2403b 100644 --- a/src/bank.cpp +++ b/src/bank.cpp @@ -163,9 +163,16 @@ int_fast8_t Bank::SendFunds(const std::string &a_name, const std::string &b_name } } -bool Bank::Contains(const std::string &name) const +int_fast8_t Bank::Contains(const std::string &name) const { - return users.contains(name); + if (users.contains(name)) + { + return true; + } + else + { + return ErrorResponse::UserNotFound; + } } int_fast8_t Bank::AdminVerifyPass(const std::string &attempt) { diff --git a/src/bank_f.cpp b/src/bank_f.cpp index e1f1960..9cfe056 100644 --- a/src/bank_f.cpp +++ b/src/bank_f.cpp @@ -31,7 +31,7 @@ BankF::BankF(Bank *b) : bank(*b) {} void BankF::Help(req_args) const { auto resp = HttpResponse::newHttpResponse(); - resp->setBody("# Meta Usage

Error Responses

# meaning
-1 UserNotFound
-2 WrongPassword
-3 InvalidRequest
-4 NameTooLong
-5 UserAlreadyExists
-6 InsufficientFunds

Things of Note

Usage

Name Path Method A Description
GetBal BankF/{name}/bal GET false returns the balance of a given user {name}
GetLog BankF/{name}/log GET true returns a list of last n number of transactions (a configurable amount) of a given user {name}
SendFunds BankF/{name}/send/{to}/amount={amount} POST true sends {amount} from user {name} to user {to}
VerifyPassword BankF/{name}/pass/verify GET true returns 1 if the supplied user {name}'s password matches the password supplied in the header

Meta Usage

Name Path Method A Description
ChangePassword BankF/{name}/pass/change PATCH true if the password supplied in the header matches the user {name}'s password, the user’s password is changed to the one given in the body
SetBal BankF/admin/{name}/bal/amount={amount} PATCH true sets the balance of a give user {name} if the supplied password matches the admin password

System Usage

Name Path Method A Description
Help BankF/help GET false the page you’re looking at right now!
Ping BankF/ping GET false for pinging the server to see if its online
Close BankF/admin/close POST true saves and then closes the program if the supplied password matches the admin password
Contains BankF/contains/{name} GET false returns true or false depending on if the supplied user {name} exists
AdminVerifyPass BankF/admin/verify GET true returns 1 if the password supplied in the header matches the admin password

User Management

Name Path Method A Description
AddUser BankF/user/{name} POST true registers a user with the name {name}, balance of 0 and a password of the password supplied in the header
AdminAddUser BankF/admin/user/{name}?init_bal={init_bal} POST true if the password supplied in the header matches the admin password, then it registers a user with the name {name}, balance of init_bal and a password supplied by the body of the request
DelUser BankF/user/{name} DELETE true if the password supplied in the header matches the user {name}'s password, then the user is deleted
AdminDelUser BankF/admin/user/{name} DELETE true if the password supplied in the header matches the admin password, then the user is deleted
"); + resp->setBody("# Meta Usage

Error Responses

# meaning
-1 UserNotFound
-2 WrongPassword
-3 InvalidRequest
-4 NameTooLong
-5 UserAlreadyExists
-6 InsufficientFunds

Things of Note

Usage

Name Path Method A Description
GetBal BankF/{name}/bal GET false returns the balance of a given user {name}
GetLog BankF/{name}/log GET true returns a list of last n number of transactions (a configurable amount) of a given user {name}
SendFunds BankF/{name}/send/{to}/amount={amount} POST true sends {amount} from user {name} to user {to}
VerifyPassword BankF/{name}/pass/verify GET true returns 1 if the supplied user {name}'s password matches the password supplied in the header

Meta Usage

Name Path Method A Description
ChangePassword BankF/{name}/pass/change PATCH true if the password supplied in the header matches the user {name}'s password, the user’s password is changed to the one given in the body
SetBal BankF/admin/{name}/bal/amount={amount} PATCH true sets the balance of a give user {name} if the supplied password matches the admin password

System Usage

Name Path Method A Description
Help BankF/help GET false the page you’re looking at right now!
Ping BankF/ping GET false for pinging the server to see if its online
Close BankF/admin/close POST true saves and then closes the program if the supplied password matches the admin password
Contains BankF/contains/{name} GET false returns 1 if the supplied user {name} exists
AdminVerifyPass BankF/admin/verify GET true returns 1 if the password supplied in the header matches the admin password

User Management

Name Path Method A Description
AddUser BankF/user/{name} POST true registers a user with the name {name}, balance of 0 and a password of the password supplied in the header
AdminAddUser BankF/admin/user/{name}?init_bal={init_bal} POST true if the password supplied in the header matches the admin password, then it registers a user with the name {name}, balance of init_bal and a password supplied by the body of the request
DelUser BankF/user/{name} DELETE true if the password supplied in the header matches the user {name}'s password, then the user is deleted
AdminDelUser BankF/admin/user/{name} DELETE true if the password supplied in the header matches the admin password, then the user is deleted
"); resp->setExpiredTime(0); callback(resp); }