This commit is contained in:
EntireTwix 2021-06-14 11:00:48 -07:00
commit ead2f87ab7
4 changed files with 65 additions and 23 deletions

View file

@ -4,13 +4,6 @@
"address": "0.0.0.0", "address": "0.0.0.0",
"port": 80, "port": 80,
"https": false "https": false
},
{
"address": "0.0.0.0",
"port": 443,
"https": true,
"cert": "",
"key": ""
} }
] ]
} }

35
help.md
View file

@ -10,24 +10,28 @@
| -6 | InsufficientFunds | | -6 | InsufficientFunds |
# Things of Note # Things of Note
* all endpoints respond with **JSON** file type
* "**A**" denotes requiring Authentication in the form of a header titled "**Password**" - all endpoints respond with **JSON** file type
- "**A**" denotes requiring Authentication in the form of a header titled "**Password**"
# Usage # Usage
| Name | Path | Method | A | Description |
| :------------: | :------------------------------------- | :----: | :---: | -------------------------------------------------------------------------------------------------- | | 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}` | | GetBal | BankF/{name}/bal | GET | false | returns the balance of a given user `{name}` |
| SendFunds | BankF/{name}/send/{to}?amount={amount} | POST | true | sends `{amount}` from user `{name}` to user `{to}` | | GetLog | BankF/{name}/log | GET | true | returns a list of last `n` number of transactions (configurable in CCash webserver) of a given user `{name}` |
| VerifyPassword | BankF/{name}/pass/verify | GET | true | returns `1` if the supplied user `{name}`'s password matches the password supplied in the header | | 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 # Meta Usage
| Name | Path | Method | A | Description | | 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 | | 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 as 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 | | 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 # System Usage
| Name | Path | Method | A | Description | | Name | Path | Method | A | Description |
| :-------------: | :-------------------- | :----: | :---: | ------------------------------------------------------------------------------------- | | :-------------: | :-------------------- | :----: | :---: | ------------------------------------------------------------------------------------- |
| Help | BankF/help | GET | false | the page you're looking at right now! | | Help | BankF/help | GET | false | the page you're looking at right now! |
@ -37,9 +41,10 @@
| AdminVerifyPass | BankF/admin/verify | GET | true | returns `1` if the password supplied in the header matches the admin password | | AdminVerifyPass | BankF/admin/verify | GET | true | returns `1` if the password supplied in the header matches the admin password |
# User Management # User Management
| Name | Path | Method | A | Description |
| :----------: | :------------------------------------------ | :----: | :---: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 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 | | 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 |
| DelUser | BankF/user/{name} | DELETE | true | if the password supplied in the header matches the user `{name}`'s password, then the user is deleted | | 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 that is supplied as the body of the request |
| AdminDelUser | BankF/admin/user/{name} | DELETE | true | if the password supplied in the header matches the admin password, then the user is deleted | | 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 |

View file

@ -85,6 +85,7 @@ int_fast8_t Bank::AdminDelUser(const std::string &name, const std::string &attem
int_fast8_t Bank::SendFunds(const std::string &a_name, const std::string &b_name, uint32_t amount, const std::string &attempt) int_fast8_t Bank::SendFunds(const std::string &a_name, const std::string &b_name, uint32_t amount, const std::string &attempt)
{ {
std::cout << "recieved request\n";
//cant send money to self, from self or amount is 0 //cant send money to self, from self or amount is 0
if (a_name == b_name || !amount) if (a_name == b_name || !amount)
{ {
@ -117,6 +118,7 @@ int_fast8_t Bank::SendFunds(const std::string &a_name, const std::string &b_name
state = true; state = true;
} }
} }
std::cout << "a\n";
})) }))
{ {
if (state) if (state)
@ -126,6 +128,7 @@ int_fast8_t Bank::SendFunds(const std::string &a_name, const std::string &b_name
b.balance += amount; b.balance += amount;
})) }))
{ {
std::cout << "c\n";
if constexpr (max_log_size) if constexpr (max_log_size)
{ {
Transaction temp(a_name, b_name, amount); Transaction temp(a_name, b_name, amount);
@ -141,6 +144,7 @@ int_fast8_t Bank::SendFunds(const std::string &a_name, const std::string &b_name
} }
else else
{ {
std::cout << "d\n";
//attempt to refund if A exist //attempt to refund if A exist
users.modify_if(a_name, [amount](User &a) { users.modify_if(a_name, [amount](User &a) {
a.balance += amount; a.balance += amount;

View file

@ -1,2 +1,42 @@
{ {
"jolly" :
{
"balance" : 139,
"log" :
[
{
"amount" : 100,
"from" : "twix",
"time" : 1623555387199,
"to" : "jolly"
},
{
"amount" : 39,
"from" : "twix",
"time" : 1623693328822,
"to" : "jolly"
}
],
"password" : 746744014776526199
},
"twix" :
{
"balance" : 9861,
"log" :
[
{
"amount" : 100,
"from" : "twix",
"time" : 1623555387199,
"to" : "jolly"
},
{
"amount" : 39,
"from" : "twix",
"time" : 1623693328822,
"to" : "jolly"
}
],
"password" : 746744014776526199
}
} }