#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::startCieLogin, "/api/v1/auth/cie/start", drogon::Post); ADD_METHOD_TO(AuthController::completeCieLogin, "/api/v1/auth/cie/exchange", drogon::Post); ADD_METHOD_TO(AuthController::cieSessionStatus, "/api/v1/auth/cie/session/{1}", drogon::Get); 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 startCieLogin( const drogon::HttpRequestPtr &req, std::function &&callback); void completeCieLogin( const drogon::HttpRequestPtr &req, std::function &&callback); void cieSessionStatus( const drogon::HttpRequestPtr &req, std::function &&callback, std::string state); void me(const drogon::HttpRequestPtr &req, std::function &&callback); void editUser(const drogon::HttpRequestPtr &req, std::function &&callback); };