#pragma once #include class ReportController : public drogon::HttpController { public: METHOD_LIST_BEGIN ADD_METHOD_TO(ReportController::create, "/api/v1/reports", drogon::Post); ADD_METHOD_TO(ReportController::list, "/api/v1/reports", drogon::Get); ADD_METHOD_TO(ReportController::assignedReports, "/api/v1/operator/reports/assigned", drogon::Get); ADD_METHOD_TO(ReportController::openReports, "/api/v1/operator/reports/open", drogon::Get); ADD_METHOD_TO(ReportController::otherOperatorReports, "/api/v1/operator/reports/others", drogon::Get); ADD_METHOD_TO(ReportController::detail, "/api/v1/reports/{1}", drogon::Get); ADD_METHOD_TO(ReportController::interventionSummary, "/api/v1/reports/{1}/intervention-summary", drogon::Get); ADD_METHOD_TO(ReportController::updateStatus, "/api/v1/reports/{1}/status", drogon::Patch); ADD_METHOD_TO(ReportController::takeReport, "/api/v1/reports/{1}/take", drogon::Post); ADD_METHOD_TO(ReportController::addMessage, "/api/v1/reports/{1}/messages", drogon::Post); ADD_METHOD_TO(ReportController::flagMessage, "/api/v1/reports/{1}/messages/{2}/flags", drogon::Post); ADD_METHOD_TO(ReportController::listMessages, "/api/v1/reports/{1}/messages", drogon::Get); ADD_METHOD_TO(ReportController::assignTeam, "/api/v1/reports/{1}/assignments", drogon::Post); ADD_METHOD_TO(ReportController::addFeedback, "/api/v1/reports/{1}/feedback", drogon::Post); ADD_METHOD_TO(ReportController::flagReport, "/api/v1/reports/{1}/flags", drogon::Post); ADD_METHOD_TO(ReportController::uploadMedia, "/api/v1/reports/{1}/media", drogon::Post); METHOD_LIST_END void create(const drogon::HttpRequestPtr &req, std::function &&callback); void list(const drogon::HttpRequestPtr &req, std::function &&callback); void assignedReports( const drogon::HttpRequestPtr &req, std::function &&callback); void openReports( const drogon::HttpRequestPtr &req, std::function &&callback); void otherOperatorReports( const drogon::HttpRequestPtr &req, std::function &&callback); void detail(const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void interventionSummary( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void updateStatus( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void takeReport( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void addMessage( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void flagMessage( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId, long long messageId); void listMessages( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void assignTeam( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void addFeedback( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void flagReport( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); void uploadMedia( const drogon::HttpRequestPtr &req, std::function &&callback, long long reportId); };