diff --git a/include/bank.h b/include/bank.h index 150424b..9f4ca41 100644 --- a/include/bank.h +++ b/include/bank.h @@ -4,7 +4,6 @@ #include #include #include -#include "error_responses.hpp" //temporary #include "user.h" #if CONSERVATIVE_DISK_SAVE && MAX_LOG_SIZE < 0 diff --git a/include/bank_api.h b/include/bank_api.h index fa7ed88..16b879b 100644 --- a/include/bank_api.h +++ b/include/bank_api.h @@ -28,34 +28,34 @@ public: void AddUser(req_args) const; void AdminAddUser(req_args) const; void DelUser(req_args) const; - void AdminDelUser(req_args, const std::string &name) const; + void AdminDelUser(req_args) const; void Contains(req_args, const std::string &name) const; void AdminVerifyPass(req_args); METHOD_LIST_BEGIN //Usage - METHOD_ADD(api::GetBal, "/v1/user/bal?name={name}", Get, Options); //done - METHOD_ADD(api::GetLog, "/v1/user/log", Get, Options, "UserFilter"); //done (could be optimized further) - METHOD_ADD(api::SendFunds, "/v1/user/transfer", Post, Options, "UserFilter"); //done - METHOD_ADD(api::VerifyPassword, "/v1/user/verify_password", Get, Options, "UserFilter"); //done + METHOD_ADD(api::GetBal, "/v1/user/bal?name={name}", Get, Options); + METHOD_ADD(api::GetLog, "/v1/user/log", Get, Options, "UserFilter"); //(could be optimized further) + METHOD_ADD(api::SendFunds, "/v1/user/transfer", Post, Options, "UserFilter"); + METHOD_ADD(api::VerifyPassword, "/v1/user/verify_password", Get, Options, "UserFilter"); //Meta Usage - METHOD_ADD(api::ChangePassword, "/v1/user/change_password", Patch, Options, "UserFilter"); //done - METHOD_ADD(api::SetBal, "/v1/admin/bal", Patch, Options, "AdminFilter"); //done + METHOD_ADD(api::ChangePassword, "/v1/user/change_password", Patch, Options, "UserFilter"); + METHOD_ADD(api::SetBal, "/v1/admin/bal", Patch, Options, "AdminFilter"); //System Usage - METHOD_ADD(api::Help, "/v1/help", Get, Options); //done - METHOD_ADD(api::Ping, "/v1/ping", Get, Options); //done - METHOD_ADD(api::Close, "/v1/admin/shutdown", Post, Options, "AdminFilter"); //done - METHOD_ADD(api::Contains, "/v1/user/exists?name={name}", Get, Options); //done - METHOD_ADD(api::AdminVerifyPass, "/v1/admin/verify_password", Get, Options, "AdminFilter"); //done + METHOD_ADD(api::Help, "/v1/help", Get, Options); + METHOD_ADD(api::Ping, "/v1/ping", Get, Options); + METHOD_ADD(api::Close, "/v1/admin/shutdown", Post, Options, "AdminFilter"); + METHOD_ADD(api::Contains, "/v1/user/exists?name={name}", Get, Options); + METHOD_ADD(api::AdminVerifyPass, "/v1/admin/verify_password", Get, Options, "AdminFilter"); //User Managment - METHOD_ADD(api::AddUser, "/v1/user/register", Post, Options); //done - METHOD_ADD(api::AdminAddUser, "/v1/admin/user/register", Post, Options, "AdminFilter"); //done - METHOD_ADD(api::DelUser, "/v1/delete", Delete, Options, "UserFilter"); //done - METHOD_ADD(api::AdminDelUser, "/v1/admin/delete", Delete, Options, "AdminFilter"); //done + METHOD_ADD(api::AddUser, "/v1/user/register", Post, Options); + METHOD_ADD(api::AdminAddUser, "/v1/admin/user/register", Post, Options, "AdminFilter"); + METHOD_ADD(api::DelUser, "/v1/delete", Delete, Options, "UserFilter"); + METHOD_ADD(api::AdminDelUser, "/v1/admin/delete", Delete, Options, "AdminFilter"); METHOD_LIST_END #endif diff --git a/include/error_responses.hpp b/include/error_responses.hpp deleted file mode 100644 index e8e4ece..0000000 --- a/include/error_responses.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once -enum ErrorResponse -{ - UserNotFound = -1, //404 - WrongPassword = -2, //401 - InvalidRequest = -3, //400 - NameTooLong = -4, //400 - UserAlreadyExists = -5, //409 - InsufficientFunds = -6, //400 -}; \ No newline at end of file diff --git a/src/bank.cpp b/src/bank.cpp index 3c97669..748f3e6 100644 --- a/src/bank.cpp +++ b/src/bank.cpp @@ -22,11 +22,11 @@ bool Bank::GetChangeState() const noexcept { return save_flag.GetChangeState(); BankResponse Bank::GetBal(const std::string &name) const noexcept { - int_fast64_t res = -1; + uint32_t res = 0; users.if_contains(name, [&res](const User &u) { - res = u.balance; + res = u.balance + 1; }); - return res < 0 ? BankResponse(k404NotFound, "User not found") : BankResponse(k200OK, res); + return res > 0 ? BankResponse(k200OK, res - 1) : BankResponse(k404NotFound, "User not found"); } BankResponse Bank::GetLogs(const std::string &name) noexcept { @@ -154,7 +154,7 @@ BankResponse Bank::AddUser(const std::string &name, std::string &&init_pass) noe std::shared_lock lock{size_l}; return (users.try_emplace_l( - name, [](User &) {}, std::move(init_pass))) + std::move(name), [](User &) {}, std::move(init_pass))) ? BankResponse(k200OK, "User added!") : BankResponse(k409Conflict, "User already exists"); } @@ -167,7 +167,7 @@ BankResponse Bank::AdminAddUser(std::string &&name, uint32_t init_bal, std::stri std::shared_lock lock{size_l}; return (users.try_emplace_l( - name, [](User &) {}, init_bal, std::move(init_pass))) + std::move(name), [](User &) {}, init_bal, std::move(init_pass))) ? BankResponse(k200OK, "User added!") : BankResponse(k409Conflict, "User already exists"); } diff --git a/src/bank_api.cpp b/src/bank_api.cpp index b4ed15d..7833205 100644 --- a/src/bank_api.cpp +++ b/src/bank_api.cpp @@ -1,8 +1,5 @@ #include "bank_api.h" -#define JSON(V) callback(HttpResponse::newHttpJsonResponse(JsonCast(V))); //temporary -#define PASS_HEADER req->getHeader("Password") //temporary - #define GEN_BODY \ const auto temp_req = req->getJsonObject(); \ const auto body = temp_req ? *temp_req : Json::Value();