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
+94
View File
@@ -129,6 +129,54 @@ void ReportController::list(
std::move(callback));
}
void ReportController::assignedReports(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback)
{
auto user = requireUser(req, callback);
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
visione::services::ReportService service;
sendService(service.assignedReports(*user,
queryValue(req, "page"),
queryValue(req, "per_page")),
std::move(callback));
}
void ReportController::openReports(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback)
{
auto user = requireUser(req, callback);
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
visione::services::ReportService service;
sendService(service.openReports(*user,
queryValue(req, "page"),
queryValue(req, "per_page")),
std::move(callback));
}
void ReportController::otherOperatorReports(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback)
{
auto user = requireUser(req, callback);
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
visione::services::ReportService service;
sendService(service.otherOperatorReports(*user,
queryValue(req, "page"),
queryValue(req, "per_page")),
std::move(callback));
}
void ReportController::detail(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback,
@@ -143,6 +191,20 @@ void ReportController::detail(
sendService(service.reportDetail(*user, reportId), std::move(callback));
}
void ReportController::interventionSummary(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback,
long long reportId)
{
auto user = requireUser(req, callback);
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
visione::services::ReportService service;
sendService(service.interventionSummary(*user, reportId), std::move(callback));
}
void ReportController::updateStatus(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback,
@@ -201,6 +263,23 @@ void ReportController::listMessages(
sendService(service.listMessages(*user, reportId), std::move(callback));
}
void ReportController::flagMessage(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback,
long long reportId,
long long messageId)
{
auto user = requireUser(req, callback);
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
const auto body = visione::http::requireJson(req);
visione::services::ReportService service;
sendService(service.flagMessage(*user, reportId, messageId, body),
std::move(callback));
}
void ReportController::assignTeam(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback,
@@ -231,6 +310,21 @@ void ReportController::addFeedback(
sendService(service.addFeedback(*user, reportId, body), std::move(callback));
}
void ReportController::flagReport(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback,
long long reportId)
{
auto user = requireUser(req, callback);
if (!user || blockPasswordChangeRequired(*user, callback))
{
return;
}
const auto body = visione::http::requireJson(req);
visione::services::ReportService service;
sendService(service.flagReport(*user, reportId, body), std::move(callback));
}
void ReportController::uploadMedia(
const drogon::HttpRequestPtr &req,
std::function<void(const HttpResponsePtr &)> &&callback,