Files
simple-object-server/src/HttpController.hpp
Your Name a4d9e3ebb5
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 1m21s
Build-Test-Publish / build (linux/arm64) (push) Successful in 2m20s
Build-Test-Publish / create-manifest (push) Successful in 17s
'Generic Commit'
2025-06-15 16:32:29 +12:00

72 lines
3.3 KiB
C++

#pragma once
#include <drogon/HttpController.h>
#include "server.hpp"
namespace simple_object_storage {
class HttpController : public drogon::HttpController<HttpController> {
public:
METHOD_LIST_BEGIN
ADD_METHOD_TO(HttpController::getIndex, "/index.html", {drogon::Get});
ADD_METHOD_TO(HttpController::getHash, "/hash/{1}", {drogon::Get});
ADD_METHOD_TO(HttpController::getVersion, "/version/{1}", {drogon::Get});
ADD_METHOD_TO(HttpController::checkExists, "/exists/{1}", {drogon::Get});
ADD_METHOD_TO(HttpController::getDirectory, "/dir", {drogon::Get});
ADD_METHOD_TO(HttpController::uploadObject, "/upload", {drogon::Put});
ADD_METHOD_TO(HttpController::updateObject, "/update", {drogon::Put});
ADD_METHOD_TO(HttpController::getMetadata, "/meta/{1}", {drogon::Get});
ADD_METHOD_TO(HttpController::deleteObject, "/deleteobject", {drogon::Get});
ADD_METHOD_TO(HttpController::getStatus, "/status", {drogon::Get});
ADD_METHOD_TO(HttpController::getObject, "/object/{1}", {drogon::Get});
ADD_METHOD_TO(HttpController::getRoot, "/", {drogon::Get});
ADD_METHOD_TO(HttpController::getAny, "/{1}", {drogon::Get});
METHOD_LIST_END
void getIndex(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void getHash(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
const std::string &key);
void getVersion(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
const std::string &key);
void checkExists(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
const std::string &key);
void getDirectory(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void uploadObject(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void updateObject(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void getMetadata(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
const std::string &key);
void deleteObject(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void getStatus(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void getObject(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
const std::string &key);
void getRoot(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void getAny(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
const std::string &path);
};
} // namespace simple_object_storage