diff --git a/config.json b/config.json index fa95be9..331a931 100644 --- a/config.json +++ b/config.json @@ -4,13 +4,6 @@ "address": "0.0.0.0", "port": 80, "https": false - }, - { - "address": "0.0.0.0", - "port": 443, - "https": true, - "cert": "", - "key": "" } ] } diff --git a/help.md b/help.md index 79ada56..386966f 100644 --- a/help.md +++ b/help.md @@ -10,24 +10,28 @@ | -6 | InsufficientFunds | # 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 -| 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 | + +| 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 (configurable in CCash webserver) 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 | +| 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 | # System Usage + | Name | Path | Method | A | Description | | :-------------: | :-------------------- | :----: | :---: | ------------------------------------------------------------------------------------- | | 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 | # 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 | \ No newline at end of file + +| 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 that is supplied as 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 | diff --git a/src/bank.cpp b/src/bank.cpp index ba2403b..f07d5fc 100644 --- a/src/bank.cpp +++ b/src/bank.cpp @@ -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) { + std::cout << "recieved request\n"; //cant send money to self, from self or amount is 0 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; } } + std::cout << "a\n"; })) { if (state) @@ -126,6 +128,7 @@ int_fast8_t Bank::SendFunds(const std::string &a_name, const std::string &b_name b.balance += amount; })) { + std::cout << "c\n"; if constexpr (max_log_size) { 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 { + std::cout << "d\n"; //attempt to refund if A exist users.modify_if(a_name, [amount](User &a) { a.balance += amount; diff --git a/users.json b/users.json index 2c63c08..9f79054 100644 --- a/users.json +++ b/users.json @@ -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 + } +} \ No newline at end of file