🐎🔥 made BankAPI static

This commit is contained in:
EntireTwix 2021-07-23 22:43:47 -07:00
parent 4086a1d324
commit 0cae801ba3
3 changed files with 48 additions and 52 deletions

View file

@ -8,34 +8,34 @@ using namespace drogon;
#define req_args const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback
class api : public HttpController<api, false>
class api : public HttpController<api>
{
public:
void JsonCpp(req_args) const;
void Json(req_args) const;
static void JsonCpp(req_args);
static void Json(req_args);
#if API_VERSION >= 1
void GetBal(req_args, const std::string &name) const;
void GetLogs(req_args);
void SendFunds(req_args) const;
void VerifyPassword(req_args) const;
static void GetBal(req_args, const std::string &name);
static void GetLogs(req_args);
static void SendFunds(req_args);
static void VerifyPassword(req_args);
void ChangePassword(req_args) const;
void AdminChangePassword(req_args) const;
void SetBal(req_args) const;
void ImpactBal(req_args) const;
static void ChangePassword(req_args);
static void AdminChangePassword(req_args);
static void SetBal(req_args);
static void ImpactBal(req_args);
void Help(req_args) const;
void Close(req_args) const;
void Contains(req_args, const std::string &name) const;
void AdminVerifyAccount(req_args) const;
void PruneUsers(req_args) const;
void ApiProperties(req_args) const;
static void Help(req_args);
static void Close(req_args);
static void Contains(req_args, const std::string &name);
static void AdminVerifyAccount(req_args);
static void PruneUsers(req_args);
static void ApiProperties(req_args);
void AddUser(req_args) const;
void AdminAddUser(req_args) const;
void DelSelf(req_args) const;
void AdminDelUser(req_args) const;
static void AddUser(req_args);
static void AdminAddUser(req_args);
static void DelSelf(req_args);
static void AdminDelUser(req_args);
#endif

View file

@ -17,12 +17,10 @@
using namespace std::chrono;
using namespace drogon;
static Bank bank;
void SaveSig(int s)
{
std::cout << "\nSaving on close...\n"
<< bank.Save();
<< Bank::Save();
exit(1);
}
@ -73,12 +71,12 @@ int main(int argc, char **argv)
#endif
//Loading users from users.json
bank.Load();
size_t num_of_logs = bank.NumOfLogs();
size_t num_of_users = bank.NumOfUsers();
Bank::Load();
size_t num_of_logs = Bank::NumOfLogs();
size_t num_of_users = Bank::NumOfUsers();
std::cout << "\n\nLoaded " << num_of_users << " Users ~" << (float)(sizeof(User) * num_of_users) / 1048576 << "Mb"
<< "\nLoaded " << num_of_logs << " Logs ~" << (float)(num_of_logs * (90 + 80 + (max_name_size * 2))) / 1048576 << "Mb" //90:string representation(heap), sizeof(Transaction), max_name_size*2:filled to&from(heap)
<< "\nLoaded " << bank.SumBal() << " CSH"
<< "\nLoaded " << Bank::SumBal() << " CSH"
<< std::endl; //flushing before EventLoop
//Sig handling
@ -91,7 +89,7 @@ int main(int argc, char **argv)
sigaction(SIGINT, &sigIntHandler, NULL);
//Admin account
bank.admin_account = argv[1];
Bank::admin_account = argv[1];
//Auto Saving
const unsigned long saving_freq = std::stoul(std::string(argv[2]));
@ -102,16 +100,15 @@ int main(int argc, char **argv)
{
std::this_thread::sleep_for(std::chrono::minutes(saving_freq));
std::cout << "Saving " << std::time(0) << "...\n"
<< bank.Save();
<< Bank::Save();
}
})
.detach();
}
} //destroying setup variables
static auto API = std::make_shared<api>(bank);
static auto user_filter_default = std::make_shared<UserFilter<true, false>>(bank);
static auto user_filter_sparse = std::make_shared<UserFilter<false, false>>(bank);
static auto admin_filter = std::make_shared<UserFilter<false, true>>(bank);
static auto user_filter_default = std::make_shared<UserFilter<true, false>>();
static auto user_filter_sparse = std::make_shared<UserFilter<false, false>>();
static auto admin_filter = std::make_shared<UserFilter<false, true>>();
static auto json_resp_and_req_filter = std::make_shared<JsonFilter<true>>();
static auto json_resp_filter = std::make_shared<JsonFilter<false>>();
@ -122,7 +119,6 @@ int main(int argc, char **argv)
.registerFilter(admin_filter)
.registerFilter(json_resp_and_req_filter)
.registerFilter(json_resp_filter)
.registerController(API)
#if MULTI_THREADED
.setThreadNum(get_nprocs())
#endif

View file

@ -49,7 +49,7 @@ static thread_local ondemand::parser parser;
#if API_VERSION >= 1
//Usage
void api::GetBal(req_args, const std::string &name) const
void api::GetBal(req_args, const std::string &name)
{
RESPONSE_PARSE(Bank::GetBal(name));
}
@ -64,7 +64,7 @@ void api::GetLogs(req_args)
callback(resp);
#endif
}
void api::SendFunds(req_args) const
void api::SendFunds(req_args)
{
SIMD_JSON_GEN;
BankResponse res;
@ -88,10 +88,10 @@ void api::SendFunds(req_args) const
}
RESPONSE_PARSE(std::move(res));
}
void api::VerifyPassword(req_args) const { RESPOND_TRUE; }
void api::VerifyPassword(req_args) { RESPOND_TRUE; }
//Meta Usage
void api::ChangePassword(req_args) const
void api::ChangePassword(req_args)
{
SIMD_JSON_GEN;
BankResponse res;
@ -115,7 +115,7 @@ void api::ChangePassword(req_args) const
}
RESPONSE_PARSE(std::move(res));
}
void api::AdminChangePassword(req_args) const
void api::AdminChangePassword(req_args)
{
SIMD_JSON_GEN;
BankResponse res;
@ -148,7 +148,7 @@ void api::AdminChangePassword(req_args) const
}
RESPONSE_PARSE(std::move(res));
}
void api::SetBal(req_args) const
void api::SetBal(req_args)
{
SIMD_JSON_GEN;
BankResponse res;
@ -172,7 +172,7 @@ void api::SetBal(req_args) const
}
RESPONSE_PARSE(std::move(res));
}
void api::ImpactBal(req_args) const
void api::ImpactBal(req_args)
{
SIMD_JSON_GEN;
BankResponse res;
@ -198,19 +198,19 @@ void api::ImpactBal(req_args) const
}
//System Usage
void api::Help(req_args) const
void api::Help(req_args)
{
static thread_local auto resp = HttpResponse::newRedirectionResponse("https://github.com/EntireTwix/CCash/blob/README.md", k301MovedPermanently);
CACHE_FOREVER;
callback(resp);
}
void api::Close(req_args) const
void api::Close(req_args)
{
Bank::Save();
RESPOND_TRUE; //filter handles admin creds
app().quit();
}
void api::Contains(req_args, const std::string &name) const
void api::Contains(req_args, const std::string &name)
{
BankResponse res;
if (Bank::Contains(name))
@ -223,11 +223,11 @@ void api::Contains(req_args, const std::string &name) const
}
RESPONSE_PARSE(std::move(res));
}
void api::AdminVerifyAccount(req_args) const
void api::AdminVerifyAccount(req_args)
{
RESPOND_TRUE; //filter handles admin creds
}
void api::ApiProperties(req_args) const
void api::ApiProperties(req_args)
{
std::string info = "{\"version\":" + std::to_string(API_VERSION) + ",\"max_log\":" + std::to_string(MAX_LOG_SIZE);
if constexpr (RETURN_ON_DEL)
@ -243,7 +243,7 @@ void api::ApiProperties(req_args) const
CACHE_FOREVER;
callback(resp);
}
void api::PruneUsers(req_args) const
void api::PruneUsers(req_args)
{
SIMD_JSON_GEN;
BankResponse res;
@ -279,7 +279,7 @@ void api::PruneUsers(req_args) const
RESPONSE_PARSE(std::move(res));
}
void api::AddUser(req_args) const
void api::AddUser(req_args)
{
SIMD_JSON_GEN;
BankResponse res;
@ -304,7 +304,7 @@ void api::AddUser(req_args) const
}
RESPONSE_PARSE(std::move(res));
}
void api::AdminAddUser(req_args) const
void api::AdminAddUser(req_args)
{
SIMD_JSON_GEN;
BankResponse res;
@ -330,12 +330,12 @@ void api::AdminAddUser(req_args) const
}
RESPONSE_PARSE(std::move(res));
}
void api::DelSelf(req_args) const
void api::DelSelf(req_args)
{
Bank::DelSelf(NAME_PARAM);
RESPOND_TRUE;
}
void api::AdminDelUser(req_args) const
void api::AdminDelUser(req_args)
{
SIMD_JSON_GEN;
BankResponse res;