#pragma once #include class AuthController : public drogon::HttpController { public: METHOD_LIST_BEGIN ADD_METHOD_TO(AuthController::registerCitizen, "/api/v1/auth/register", drogon::Post); ADD_METHOD_TO(AuthController::requestOtp, "/api/v1/auth/otp/request", drogon::Post); ADD_METHOD_TO(AuthController::verifyOtp, "/api/v1/auth/otp/verify", drogon::Post); ADD_METHOD_TO(AuthController::loginWithPassword, "/api/v1/auth/login/password", drogon::Post); ADD_METHOD_TO(AuthController::changePassword, "/api/v1/auth/change-password", drogon::Post); ADD_METHOD_TO(AuthController::me, "/api/v1/me", drogon::Get); ADD_METHOD_TO(AuthController::editUser, "/api/v1/me", drogon::Patch); METHOD_LIST_END void registerCitizen( const drogon::HttpRequestPtr &req, std::function &&callback); void requestOtp( const drogon::HttpRequestPtr &req, std::function &&callback); void verifyOtp( const drogon::HttpRequestPtr &req, std::function &&callback); void loginWithPassword( const drogon::HttpRequestPtr &req, std::function &&callback); void changePassword( const drogon::HttpRequestPtr &req, std::function &&callback); void me(const drogon::HttpRequestPtr &req, std::function &&callback); void editUser(const drogon::HttpRequestPtr &req, std::function &&callback); };