Complete backend MVP

This commit is contained in:
gabdevele
2026-06-05 11:56:28 +02:00 Unverified
parent 25c280f38b
commit 5974f01daa
25 changed files with 3468 additions and 1137 deletions
+40
View File
@@ -8,7 +8,19 @@ class ReportController : public drogon::HttpController<ReportController>
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);
@@ -18,6 +30,9 @@ class ReportController : public drogon::HttpController<ReportController>
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);
@@ -27,6 +42,9 @@ class ReportController : public drogon::HttpController<ReportController>
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);
@@ -36,9 +54,22 @@ class ReportController : public drogon::HttpController<ReportController>
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void list(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void assignedReports(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void openReports(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void otherOperatorReports(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void detail(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long reportId);
void interventionSummary(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long reportId);
void updateStatus(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
@@ -51,6 +82,11 @@ class ReportController : public drogon::HttpController<ReportController>
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long reportId);
void flagMessage(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long reportId,
long long messageId);
void listMessages(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
@@ -63,6 +99,10 @@ class ReportController : public drogon::HttpController<ReportController>
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long reportId);
void flagReport(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long reportId);
void uploadMedia(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,