Files
backend/controllers/AdminController.h
T

105 lines
4.2 KiB
C++

#pragma once
#include <drogon/HttpController.h>
class AdminController : public drogon::HttpController<AdminController>
{
public:
METHOD_LIST_BEGIN
ADD_METHOD_TO(AdminController::createCategory,
"/api/v1/admin/categories",
drogon::Post);
ADD_METHOD_TO(AdminController::createArea, "/api/v1/admin/areas", drogon::Post);
ADD_METHOD_TO(AdminController::createTeam, "/api/v1/admin/teams", drogon::Post);
ADD_METHOD_TO(AdminController::updateCategory,
"/api/v1/admin/categories/{1}",
drogon::Patch);
ADD_METHOD_TO(AdminController::deleteCategory,
"/api/v1/admin/categories/{1}",
drogon::Delete);
ADD_METHOD_TO(AdminController::updateArea,
"/api/v1/admin/areas/{1}",
drogon::Patch);
ADD_METHOD_TO(AdminController::deleteArea,
"/api/v1/admin/areas/{1}",
drogon::Delete);
ADD_METHOD_TO(AdminController::updateTeam,
"/api/v1/admin/teams/{1}",
drogon::Patch);
ADD_METHOD_TO(AdminController::deleteTeam,
"/api/v1/admin/teams/{1}",
drogon::Delete);
ADD_METHOD_TO(AdminController::overviewStats,
"/api/v1/admin/stats/overview",
drogon::Get);
ADD_METHOD_TO(AdminController::listModeration,
"/api/v1/admin/moderation",
drogon::Get);
ADD_METHOD_TO(AdminController::updateModeration,
"/api/v1/admin/moderation/{1}",
drogon::Patch);
ADD_METHOD_TO(AdminController::listUsers, "/api/v1/admin/users", drogon::Get);
ADD_METHOD_TO(AdminController::updateUserRoles,
"/api/v1/admin/users/{1}/roles",
drogon::Patch);
ADD_METHOD_TO(AdminController::updateUserBan,
"/api/v1/admin/users/{1}/ban",
drogon::Patch);
METHOD_LIST_END
void createCategory(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void createArea(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void createTeam(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void updateCategory(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long categoryId);
void deleteCategory(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long categoryId);
void updateArea(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long areaId);
void deleteArea(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long areaId);
void updateTeam(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long teamId);
void deleteTeam(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long teamId);
void overviewStats(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void listModeration(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void updateModeration(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long flagId);
void listUsers(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void updateUserRoles(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long userId);
void updateUserBan(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
long long userId);
};