feat: enhance Admin and report services with CRUD operations and intervention links
This commit is contained in:
@@ -69,18 +69,14 @@ void sendAdmin(Json::Value body,
|
||||
{
|
||||
status = drogon::k409Conflict;
|
||||
}
|
||||
else if (error == "invalid_reference" || error.starts_with("invalid_"))
|
||||
{
|
||||
status = drogon::k422UnprocessableEntity;
|
||||
}
|
||||
callback(visione::http::json(std::move(body), status));
|
||||
}
|
||||
} // namespace
|
||||
|
||||
void AdminController::listCategories(
|
||||
const drogon::HttpRequestPtr &,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback)
|
||||
{
|
||||
visione::services::AdminService service;
|
||||
callback(visione::http::json(service.listCategories()));
|
||||
}
|
||||
|
||||
void AdminController::createCategory(
|
||||
const drogon::HttpRequestPtr &req,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback)
|
||||
@@ -95,14 +91,6 @@ void AdminController::createCategory(
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
void AdminController::listAreas(
|
||||
const drogon::HttpRequestPtr &,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback)
|
||||
{
|
||||
visione::services::AdminService service;
|
||||
callback(visione::http::json(service.listAreas()));
|
||||
}
|
||||
|
||||
void AdminController::createArea(
|
||||
const drogon::HttpRequestPtr &req,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback)
|
||||
@@ -117,14 +105,6 @@ void AdminController::createArea(
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
void AdminController::listTeams(
|
||||
const drogon::HttpRequestPtr &,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback)
|
||||
{
|
||||
visione::services::AdminService service;
|
||||
callback(visione::http::json(service.listTeams()));
|
||||
}
|
||||
|
||||
void AdminController::createTeam(
|
||||
const drogon::HttpRequestPtr &req,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback)
|
||||
@@ -139,6 +119,51 @@ void AdminController::createTeam(
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
void AdminController::updateCategory(
|
||||
const drogon::HttpRequestPtr &req,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback,
|
||||
long long categoryId)
|
||||
{
|
||||
auto user = requireUser(req, callback);
|
||||
if (!user || blockPasswordChangeRequired(*user, callback))
|
||||
{
|
||||
return;
|
||||
}
|
||||
visione::services::AdminService service;
|
||||
sendAdmin(service.updateCategory(*user, categoryId, visione::http::requireJson(req)),
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
void AdminController::updateArea(
|
||||
const drogon::HttpRequestPtr &req,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback,
|
||||
long long areaId)
|
||||
{
|
||||
auto user = requireUser(req, callback);
|
||||
if (!user || blockPasswordChangeRequired(*user, callback))
|
||||
{
|
||||
return;
|
||||
}
|
||||
visione::services::AdminService service;
|
||||
sendAdmin(service.updateArea(*user, areaId, visione::http::requireJson(req)),
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
void AdminController::updateTeam(
|
||||
const drogon::HttpRequestPtr &req,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback,
|
||||
long long teamId)
|
||||
{
|
||||
auto user = requireUser(req, callback);
|
||||
if (!user || blockPasswordChangeRequired(*user, callback))
|
||||
{
|
||||
return;
|
||||
}
|
||||
visione::services::AdminService service;
|
||||
sendAdmin(service.updateTeam(*user, teamId, visione::http::requireJson(req)),
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
void AdminController::overviewStats(
|
||||
const drogon::HttpRequestPtr &req,
|
||||
std::function<void(const HttpResponsePtr &)> &&callback)
|
||||
|
||||
Reference in New Issue
Block a user