mirror of
https://github.com/Expand-sys/CCash
synced 2026-03-22 20:47:10 +11:00
Merge branch 'main' of https://github.com/EntireTwix/CCash
This commit is contained in:
commit
ead2f87ab7
4 changed files with 65 additions and 23 deletions
|
|
@ -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": ""
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
19
help.md
19
help.md
|
|
@ -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}` |
|
| 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}` |
|
| 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}` |
|
| 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| AdminDelUser | BankF/admin/user/{name} | DELETE | true | if the password supplied in the header matches the admin password, then the user is deleted |
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
40
users.json
40
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue