Template
1
0
Files
WebBase/src/HTTPMethods.cpp

35 lines
1.3 KiB
C++

#include "Helpers.hpp"
#include "Main.hpp"
#include <sstream>
// Idea is very simple this map has it so that stuff like
// responseMethods["GET","/"] have a method inside them
// There is an invoking method inside each HTTPrequest
//
// So just add your logic here and relax ;)
std::unordered_map<
std::string,
std::unordered_map<std::string, std::function<void(HTTPrequest *self)>>>
Webserver::responseMethods;
void Webserver::initResponses() {
responseMethods["GET"]["/"] = [](HTTPrequest *self) {
self->sendResponse("200 OK", "text/html",
Helpers::ReadFile("www/index.html"));
};
responseMethods["POST"]["/upload"] = [](HTTPrequest *self) {
auto result = Helpers::processFormData(self->bodyContent,
self->headers["Content-Type"]);
std::stringstream resp;
resp << "You have sent\n"
<< "filePassword = " << result["filePassword"].data << "\n"
<< "name = " << result["name"].data << "\n"
<< "numb = " << result["numb"].data << "\n"
<< "time = " << result["time"].data << "\n"
<< "uploadedFile = " << result["uploadedFile"].data << " as filetype "
<< result["uploadedFile"].headers["Content-Type"] << "\n";
self->sendResponse("200 OK", "text/text", resp.str());
};
}